ОШИБКА TypeError: _co.deleteConsulta не является функцией - PullRequest
0 голосов
/ 09 сентября 2018

Я следовал учебному пособию о том, как приготовить сырое блюдо с помощью FireStore, и до сих пор у меня все работало правильно, пока я не получил часть, которую мне нужно было удалить данные из FireStore, каждый раз, когда я щелкаю по нему, чтобы удалить пользователя из моего FireStore я получаю сообщение об ошибке, в котором говорится, что ._co.deleteConsulta не является функцией, даже если она была объявлена ​​внутри моего detailpage.ts и не показывает ошибок, я даже попытался запустить ionic serve --prod, чтобы проверить, что я что-то упустил, нет ошибок вообще.

Для второй части всякий раз, когда я нажимаю удалить, ничего не происходит ошибки не отображаются вообще.

вот мои детали.тс

import { AlertController } from '@ionic/angular';
import { FirestoreService } from './../../services/data/firestore.service';
import { Consulta } from './../../model/consulta.interface';
import { Component, OnInit } from '@angular/core';
import { Observable } from 'rxjs';
import { ActivatedRoute, Router } from '@angular/router';

@Component({
  selector: 'app-detail',
  templateUrl: './detail.page.html',
  styleUrls: ['./detail.page.scss'],
})
export class DetailPage implements OnInit {
  public consulta: Observable<Consulta>;
  public consultaId;
  constructor(private firestoreService: FirestoreService,
    private route: ActivatedRoute, private alertController: AlertController, private router: Router) { }

  ngOnInit() {
    const consultaId: string = this.route.snapshot.paramMap.get('id');
    this.consulta = this.firestoreService.getConsultaDetail(consultaId).valueChanges();
  }
  async deletarConsulta() {
    const alert = await this.alertController.create({
      message: 'Tem certeza que gostaria de desmarcar sua consulta?',
      buttons: [
        {
          text: 'Cancel',
          role: 'cancel',
          handler: blah => {
            console.log('Confirm desmarcação: blah');
          },
        },
        {
          text: 'Okay',
          handler: () => {
            this.firestoreService.deleteConsulta(this.consultaId).then(() => {
              this.router.navigateByUrl('');
            });
          },
        },
      ],
    });

    await alert.present();
  }

}

detail.html

<ion-header>
    <ion-toolbar>
      <ion-buttons slot="start">
        <ion-back-button></ion-back-button>
      </ion-buttons>
      <ion-title>{{ (consulta | async)?.unidade }}</ion-title>
    </ion-toolbar>
  </ion-header>

  <ion-content padding>
      <h3> Unidade </h3>
      <p>
        Médico{{ (consulta | async)?.medNome }}
      </p>
      <p> Especialidade{{ (consulta | async)?.especialidade }}</p>
      <p> Endereço{{ (consulta | async)?.endereco }}</p>
      <p> Data da Consulta {{ (consulta | async)?.data }}</p>
      <p> Hora da Consulta {{ (consulta | async)?.hora }}</p>
      <ion-button expand="block" (click)="deletarConsulta()">
          Desmarcar Consulta
        </ion-button>
    </ion-content>

1 Ответ

0 голосов
/ 09 сентября 2018

Проблема в том, что вы не написали функцию deleteConsulta() или ее нет в коде файла firestoreService. А также, возможно, вы можете попытаться изменить доступ с «частного» на «публичный» в объявлениях Конструктора ...

...