用于识别用户的离子事件来自navCtrl.pop()

时间:2018-05-01 13:12:37

标签: javascript angularjs ionic-framework

我有三个页面,分别为page1,page2和page3

,他们的导航将是page1-> page2-> page3

我们如何通过NavController推送或弹出功能在第2页上识别用户来到此页面。

我只是想在第2页上触发一个函数,只要它们在第3页上执行某些操作并通过navCtrl.pop()函数重定向到第2页。

我知道我可以在ionViewWillEnter中输入条件来获取导航堆栈中的最后一个视图名称,因为每次用户都在第2页时会触发它。但是,如果有任何其他替代或好方法来做到这一点。请让我知道

谢谢

2 个答案:

答案 0 :(得分:2)

确定我们是否使用push来到某个网页很容易,因为这是在parent

中将参数从child传递到navCtrl.push(PageName, parameters)的标准方法

我认为您要问的是如何做相反的事情:将值从child传递回parent

以下是此解决方案(有关详细信息,请参阅this link):

在父级中,而不是正常的push函数,创建一个新的承诺,并在then部分中,您可以从子级获取参数。

在小孩中,在pop()调用其then之后,通过您最初创建的承诺的解析将参数传递给父级。

<强>父

new Promise((resolve, reject) => {
  this.nav.push(ChildPage, {resolve: resolve});
}).then(data => {
  // process data
});

儿童

this.nav.pop().then(() => this.params.get('resolve')('some data'))

我多次使用上述解决方案。还有这种替代解决方案,但我自己没有测试过:

https://forum.ionicframework.com/t/solved-ionic-navcontroller-pop-with-params/58104/3

答案 1 :(得分:0)

我正在使用globalThis['datatoinput']输入数据,然后在父页面上使用ionViewDidEnter来读取globalThis['datatoinput']