2017-09-14 31 views
5

我的离子3应用程序具有带两个选项卡的离子选项卡。当从标签切换到标签时,我需要显示一条确认消息(使用AlertController),以防止用户更改当前标签,除非他确认了他的选择。离子是可能的吗? 我试着在选项卡更改时显示确认消息。但是,我无法阻止新标签出现。如何在离子选项卡离开3之前显示确认消息

谢谢。

回答

3

你可以使用导航警卫来实现这样的事情。您可以在NavController的离子文档中找到它们。

的实现可能是这个样子:

ionViewCanEnter(): Promise<any> { 
    return new Promise((resolve, reject) => { 
    let alert = this.alertCtrl.create({ 
     title: 'Alert', 
     message: 'Please confirm ...', 
     buttons: [ 
     { 
      text: 'Cancel', 
      role: 'cancel', 
      handler:() => { 
      reject(); 
      }, 
     }, 
     { 
      text: 'Confirm', 
      handler:() => { 
      resolve(); 
      }, 
     }, 
     ], 
    }); 
    alert.present(); 
    }); 
} 

使用ionViewCanEnter()ionViewCanLeave()当前确实not work(使用标签时,至少)。

+0

谢谢你的回答。只有当我第一次更换标签页时,我才能用解决方案显示确认消息。我遇到的问题是ionViewCanEnter钩子只能触发一次,因为tabs视图实际上只加载一次([更多详情](https://github.com/ionic-team/ionic/issues/9951))这个问题 )。你有没有遇到过这个问题? – MosbahiHaithem

+0

因此,用户必须确认_every_他进入选项卡的时间?听起来很糟糕的可用性。但如果这是一个离子虫,目前你将不得不做一些凌乱的黑客来实现这一点。就像截获选项卡上的点击一样,如果成功,请防止默认,手动显示alert,.select()选项卡。 – David

+0

或者您在再次离开后手动销毁标签页,以便下次再次初始化。 – David

相关问题