web-dev-qa-db-fra.com

Ionic 4 Angular - Comment rejeter automatiquement un modal

Dans Ionic 3, rejeter un modal était assez simple:

constructor(viewCtrl: ViewController) {
    this.viewCtrl.dismiss()
}

Dans Ionic 4, je ne peux pas importer ViewController (ou pour être précis, mon IDE essaie d'importer un type de ViewController).

Je me demandais quelle était la nouvelle approche du rejet d'un modal.

9
Eliya Cohen

Selon les documents, il semble que la méthode dismiss soit passée à ModalController .

Donc, pour rejeter un modal, je dois faire:

constructor(modalCtrl: ModalController) {
  modalCtrl.dismiss();
}

Quelle ironie que je trouve ma réponse APRÈS avoir posté la question.

19
Eliya Cohen

la documentation ionic v4 semble manquer ici mais je pense que la bonne façon d'accéder à dismiss à partir du modal est:

import { Components } from '@ionic/core';

@Component({
  selector: 'app-some-modal',
  templateUrl: 'some-modal.component.html',
  styleUrls: ['some-modal.component.scss']
})
export class SomeModalComponent {
  // modal is available here where created with:
  // modalController.create({ component: SomeModalComponent})
  @Input() modal: Components.IonModal;

  onCancel = () =>
    this.modal.dismiss('cancel');
}

tandis que le modal est en fait de type HTMLIonModalElement j'utilise Components.IonModal puisque HTMLIonModalElement est censé être global mais n'est pas visible pour WebStorm/IntelliJ pour une raison quelconque.

7
ciekawy