Ionic2:以root身份设置当前页面

时间:2016-11-25 00:23:09

标签: angular typescript ionic-framework ionic2

我尝试在验证某些内容后设置为root当前页面,在这种情况下,启动服务后因为一旦启动,用户无法返回上一页,直到完成当前页面但是如果用户没有开始服务,他仍然可以回到上一个服务。

那么,你知道怎么做吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您已经在该页面上,而不是将其设置为Root,则可以使用Nav Guards

  

在某些情况下,开发人员应该能够控制离开和的视图   进入。为了实现这一点,NavController具有ionViewCanEnter和   ionViewCanLeave方法。类似于Angular 2路线卫士,但是   与NavController集成更多。

因此,我们可以检查服务是否已经启动但尚未完成,并阻止用户离开页面,直到服务完成。

为此,我们可以这样做:

    // Method that gets executed when the user tries to leave the page
    ionViewCanLeave() {
        if(this.serviceHasStarted && !this.serviceHasFinished) {
            let showAlertMessage = this.alertCtrl.create({
                title: 'Error',
                message: '¿You can\'t leave the page until ...',
                buttons: [
                {
                    text: 'Ok',
                    handler: () => {

                    }
                }]
            });

            showAlertMessage.present();

            // Return false to prevent the user from leaving the page
            return false;
        } else {    
            // Return true to allow the user to leave the page      
            return true;
        }
    }