angular - 使用 Ionic v2 在离开页面(返回)之前发出警报

标签 angular typescript ionic-framework ionic2 ionic3

如何显示 alert ,用户必须在返回上一页之前关闭?我正在使用标准 <ion-navbar *navbar> 箭头按钮

我尝试连接到 NavController事件 ionViewWillLeave像这样,但它不起作用:

ionViewWillLeave() {
  let alert = Alert.create({
    title: 'Bye',
    subTitle: 'Now leaving',
    buttons: ['OK']
  });
  this.nav.present(alert);
}

这会显示警报,但一旦关闭就不会返回。如果我将其注释掉,后退按钮可以正常工作。

最佳答案

公认的解决方案在 RC3 中不起作用,这是一个使用 Nav Controller 的新解决方案的导航卫队:

ionViewCanLeave(): Promise<void> {
  return new Promise((resolve, reject) => {
    let confirm = this.alertCtrl.create({
      title: 'Are you sure?',
      message: 'Bunnies will die :(',
      buttons: [{
        text: 'OK',
        handler: () => {
          resolve();
        },
      }, {
        text: 'Cancel',
        handler: () => {
          reject();
        }
      }],
    });
    confirm.present();
  })
}

如果您在导航 Controller 上使用 push() 导航,您还需要对其进行捕获,否则它会抛出未处理的错误:

this.navCtrl.push(SomePage).catch(() => {});

关于angular - 使用 Ionic v2 在离开页面(返回)之前发出警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37955114/

相关文章:

javascript - RouterModule.forRoot() 调用了两次

typescript - 声明任意嵌套数组(递归类型定义)

ios - Ionic iOS session 问题

angularjs - 使用单独的模板 html 文件从 ionic /Angular 模态传递数据

angular - 使用 async wait 推迟 block 的执行

javascript - 如何创建具有已定义值类型的空对象

angular - 测试使用 Jasmine 订阅 Observable 失败的情况

javascript - Angular 中数组中的数组

typescript - 类型别名循环引用自身

javascript - 自定义切换功能不适用于 Ionic 应用程序中的 ng-click