Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
区分页面上的向前和向后导航Ionic2_Ionic2 - Fatal编程技术网

区分页面上的向前和向后导航Ionic2

区分页面上的向前和向后导航Ionic2,ionic2,Ionic2,如何区分页面进入视图是向前导航还是向后导航。我只想在向前导航时运行一些代码。案例1:-假设您正在从一页导航到另一页-向前。即使用navCtrl.push(页面,参数) 在这里,您可以将代码放入constructor(){}。当您向前推/导航到页面时,构造函数中的代码总是会被执行。(您也可以将堆栈重置为根页面,而不是推送。这同样有效。) 案例2:-假设您正在从页面向后导航。即,用户在应用程序中手动返回或使用navCtrl.pop() 在这里,我认为,没有任何内置的方式来识别您是否浏览了后台页面。在

如何区分页面进入视图是向前导航还是向后导航。我只想在向前导航时运行一些代码。

案例1:-假设您正在从一页导航到另一页-向前。即使用
navCtrl.push(页面,参数)

在这里,您可以将代码放入
constructor(){}
。当您向前推/导航到页面时,构造函数中的代码总是会被执行。(您也可以将堆栈重置为根页面,而不是推送。这同样有效。)

案例2:-假设您正在从页面向后导航。即,用户在应用程序中手动返回或使用
navCtrl.pop()

在这里,我认为,没有任何内置的方式来识别您是否浏览了后台页面。在这里,您需要构建自己的逻辑

例如,PageA->PageB是您的导航。在从PageA->PageB导航时,我使用了
localStorage
变量来设置一些值(例如
localStorage.setItem('isPushed',true)

现在,在PageA中,我使用
ionViewWillEnter()
编写了这段代码:

ionViewWillEnter()
总是在导航特定页面时执行。所以,我的想法是检测它是否从下一页导航到了下一页。希望这有帮助。:)


注意:我没有处理与此相关的所有条件。你必须解决它。这只是一个使用逻辑的想法。

如果在构造函数中运行该代码会怎么样?如果您返回到该页面,并且假设该页面是您推送的页面(而不是将其设置为root),则不会再次执行该页面,每次用户导航到该页面时都会执行该页面。
ionViewWillEnter(){
    if(JSON.parse(localStorage.getItem('isPushed')){
        localStorage.setItem('isPushed',false);
        // Your Code to be executed when entering to back page.
    }
}