2017-03-08 25 views
2

在登录页面的应用程序将获得UDIToken如果登录/注册成功,将传递给MapPage:Navparam传递的数据是不可用Ionic2

if (Token != "-1") 
        {     
       this.navCtrl.push(MapPage, {UDI: this.UDI, Token: Token}) 
       this.navCtrl.setRoot(MapPage); 
       this.navCtrl.popToRoot; 
在构造方法

popToRoot火灾console.log(this.UDI, this.Token);显示值但在此之后它们是不确定的。

this.UDI=this.params.get('UDI'); 
this.Token=this.params.get('Token');  
console.log(this.UDI, this.Token); 

更新1:结果 enter image description here

,你可以才去地图页面看到它显示了正确的传递的值

map.ts:39 2NYIRWI0N8Z6HW2M3HWR XWRU441NHH0B9GSHVC3P 

但毕竟导航根页面改变

map.ts:39 undefined undefined 
+0

u需要某些变量进行全局声明,然后U可以将您的UDI和令牌到所有其它页面。 – devanshsadhotra

+0

hi @devanshsadhotra你知道会话制作和管理的任何参考指南,而不是使用本地存储或本地存储吗? – RSA

+0

你不需要上述场景的本地存储。所有你需要的是两个变量,你可以访问整个项目 – devanshsadhotra

回答

1

你的密钥看起来像变量而不是字符串文字。因此,您的密钥和值都是 UDI和令牌的值。

尝试用引号。

 this.navCtrl.setRoot(MapPage, {'UDI': this.UDI, 'Token': Token}) 

而且你正在做的两个push使用参数,然后setRoot没有PARAMS。您的地图页面设置为根而没有 params。 setRoot功能也需要参数

+0

仍然是我更新了我的问题。 – RSA

+0

你为什么要按*和* setRoot?做一个..我认为这是做没有参数传递的设置根 –

+0

因为地图页是主页,不应该有后退按钮。 – RSA

1

因为地图页是主页,不应该有后退按钮。

就像@suraj说的那样,你用参数推送视图,然后以root身份设置相同的页面,但没有参数。这是不正确的。如果你不希望显示后退箭头,只需设置页面根

if (Token != "-1") {     
    // this.navCtrl. push(MapPage, {UDI: this.UDI, Token: Token}) <- don't do that 
    this.navCtrl.setRoot(MapPage, {UDI: this.UDI, Token: Token}); <- send the data like this 
    // this.navCtrl.popToRoot; <- don't do that 
    // ... 
}