Свойство не существует для типа в TypeScript - PullRequest
0 голосов
/ 09 сентября 2018

Я работаю над ионным 4 Crud и в моем create.page.ts я проверяю формы, однако я пытался использовать асинхронный метод и жду использования this.loading.ctrl, но я получаю эту ошибку, описанную назаглавие.

Также, когда я пытаюсь обработать его возвращение, я также получаю сообщение об ошибке this.router.navigateByUrl(''); Если не совсем ясно, что здесь происходит, вот мои create.page.ts:

import { Component, OnInit } from '@angular/core';
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
import { LoadingController, AlertController } from '@ionic/angular';
import { FirestoreService } from '../../services/data/firestore.service';

@Component({
  selector: 'app-create',
  templateUrl: './create.page.html',
  styleUrls: ['./create.page.scss'],
})
export class CreatePage implements OnInit {
  public createConsultaForm: FormGroup;

  constructor(
    public firestoreService: FirestoreService, formBuilder: FormBuilder,
    loadingCtrl: LoadingController, alertCtrl: AlertController
  ) {
      this.createConsultaForm = formBuilder.group({
        id: ['', Validators.required],
        unidade: ['', Validators.required],
        medNome: ['', Validators.required],
        especialidade: ['', Validators.required],
        endereco: ['', Validators.required],
        data: ['', Validators.required],
        hora: ['', Validators.required],
      });
  }

  ngOnInit() {
  }

  async createConsulta() {
    const loading = await this.loadingCtrl.create();
    const id = this.createConsultaForm.value.id;
    const unidade = this.createConsultaForm.value.unidade;
    const medNome = this.createConsultaForm.value.medNome;
    const especialidade = this.createConsultaForm.value.especialidade;
    const endereco = this.createConsultaForm.value.endereco;
    const data = this.createConsultaForm.value.data;
    const hora = this.createConsultaForm.value.hora;

    this.firestoreService
      .createConsulta(unidade, especialidade, medNome,  endereco, data, hora)
      .then(
        () => {
          loading.dismiss().then(() => {
            this.router.navigateByUrl('');
          });
        },
        error => {
          console.error(error);
        }
      );

    return await loading.present();
  }
}

В этой строке:

const loading = await this.loadingCtrl.create();

Я получаю:

Свойство loadingCtrl не существует для типа CreatePage

и дляэта строка:

this.router.navigateByUrl('');

Я получаю

Свойство 'router' не существует для типа 'CreatePage'

1 Ответ

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

Я не вижу нигде, вы импортируете Router

Импорт Router и создание экземпляра внутри конструктора

constructor(router: Router) { this.router.navigateByUrl(...); }
...