Подтвердить что ты не робот

Как не закрывать окно оповещения при нажатии на него вне Ionic

Я создаю приложение ionic 2 и использую следующий компонент

http://ionicframework.com/docs/components/#alert

  import { AlertController } from 'ionic-angular';

export class MyPage {
  constructor(public alertCtrl: AlertController) {
  }

  showAlert() {
    let alert = this.alertCtrl.create({
      title: 'New Friend!',
      subTitle: 'Your friend, Obi wan Kenobi, just accepted your friend request!',
      buttons: ['OK']
    });
    alert.present();
  }
}

Как я могу убедиться, что, когда я нажимаю за пределами окна, предупреждение не отклоняется?

4b9b3361

Ответ 1

Ионная 2/3:

Как вы можете видеть в документах AlertController, вы можете использовать опцию enableBackdropDismiss (логическое значение) при создании оповещения:

enableBackdropDismiss: следует ли отключить предупреждение, коснувшись фона. По умолчанию правда

import { AlertController } from 'ionic-angular';

// ...
export class MyPage {

  constructor(public alertCtrl: AlertController) {}

  showAlert() {
    let alert = this.alertCtrl.create({
      title: 'New Friend!',
      subTitle: 'Your friend, Obi wan Kenobi, just accepted your friend request!',
      buttons: ['OK'],
      enableBackdropDismiss: false // <- Here! :)
    });

    alert.present();
  }
}

Ионная 4:

В Ionic 4 это свойство было переименовано в backdropDismiss:

backgroundDismiss: при значении true оповещение будет отменено при нажатии на фон.

import { AlertController } from '@ionic/angular';

//...
export class MyPage {

  constructor(public alertController: AlertController) {}

  async showAlert() {
    const alert = await this.alertController.create({
      header: 'Alert',
      subHeader: 'Subtitle',
      message: 'This is an alert message.',
      buttons: ['OK'],
      backdropDismiss: false // <- Here! :)
    });

    await alert.present();
  }
}

Ответ 2

В ionic 4 опция была переименована в

backdropDismiss: false

Ответ 3

Установить enableBackdropDismiss: false в параметрах alertCtrl.create

Ответ 4

попробуйте вот так, поместите этот код для вашего обработчика handler: () => { console.log(this.viewCtrl.dismiss()); }