在pop / dismiss

时间:2018-02-06 09:36:51

标签: ionic-framework ionic3

我有3条路线。当我从第一个移动到第二个时,我需要传递一个参数: this.navCtrl.push(ReadyPage, { newGame: true });

但是当我从第3位移到第2位时,我也需要通过这个参数。

我正在尝试这个但是不起作用: this.viewCtrl.dismiss({ newGame: true });

比较两种方法dismiss似乎没有这个选项(除非它被称为data而不是params): abstract push(page: Page | string, params?: any, opts?: NavOptions, done?: TransitionDoneFn): Promise<any>; dismiss(data?: any, role?: string, navOptions?: NavOptions): Promise<any>;

2 个答案:

答案 0 :(得分:12)

上一页:

 this.navCtrl.getPrevious().data.newGame = true;
 this.navCtrl.pop();

第2页:

ionViewWillEnter() {
     this.newGame = this.navParams.get('newGame')|| null;
}

答案 1 :(得分:1)

如果您可以通过这种方式解决问题,请访问this,建议在从第3页返回到第2页时使用pop()和params

转换时传递回调

// callback...
 myCallbackFunction = function(_params) {
     return new Promise((resolve, reject) => {
             resolve();
         });
 }

 // push page...
 this.navController.push(OtherPageComponent, {
    callback: myCallbackFunction
});
在OtherPageComponent中

 this.callback = this.navParams.get("callback")

 this.callback(param).then(()=>{
    this.navController.pop();
 });