Ionic 2/3:动态设置RootPage

时间:2018-01-16 13:49:32

标签: ionic2

我有一个场景,我有两个配置文件(用户和管理员),一个人登录后我有一个选择页面。在选择页面上,有2个单选按钮(用户和管理员配置文件),我是什么试图实现的是,这个人只能选择1个配置文件(这是通过单选按钮实现的),现在假设我保存了所选的值,我想将rootPage设置为AdminPage或UserPage,但我不想要为了立即导航,我只想更新/设置路径,以便当人回来时(通过按后退键或上一个按钮),它将把人带到所需的页面。请让我知道你的想法。

3 个答案:

答案 0 :(得分:0)

Maby会让你朝着正确的方向前进: https://ionicframework.com/docs/api/navigation/NavController/#insert

不要将adminPage或userPage设置为rootPage,而是将页面插入堆栈

答案 1 :(得分:0)

这里的诀窍是你希望在用户尝试返回后将root设置为新页面,实现此目的的最简单方法是使用if (this.CreatedAt == default(DateTimeOffset)) { this.CreatedAt = DateTimeOffset.Now; } https://contactform7.com/dom-events/执行代码之前离开页面,这样它将检查用户选择的页面,然后设置根目录。

由于在navguards之后选择可以很容易,我将把它放在一边。我们只是说你有一个字符串属性NavController,可以是“用户”或“管理员”,在您选择的页面中,您将执行以下操作:

userType

希望这有帮助。

答案 2 :(得分:0)

我得到了错误的解决方案,

    ionViewCanLeave() {
  if(!this.canLeave){
    if(this.userType == 'user'){
      this.canLeave = true; // you'll need to set canLeave to true so when setting the rootpage it doesn't enters the if statemente again
      this.navCtrl.setRoot('UserPage'); // <-- this should be UserPage instead of 'UserPage'
    } else {
      this.canLeave = true;
      this.navCtrl.setRoot('AdminPage'); // <-- this should be AdminPage instead of 'AdminPage'
    }
  }
  return true;
}