我认为我的问题非常简单,但我确实无法通过我。
我需要在登录后在全局变量中为HTTP请求放置一个TOKEN。 在我的登录页面中,HTTP get,返回一个对象:HTTP代码(200,403,403),一条消息("成功")和TOKEN,我将此对象传递给HOME.ts页面为真的NavController 。
this.navCtrl.setRoot(HomePage,{
data <<--- Object
});
但是当我试图把这个回归&#34;数据&#34;在&#34;登录&#34;
类型的对象中export class Login {
code:number;
token:string;
message:string;
constructor(code?:number, token?:string, message?:string){
this.code = code;
this.token = token;
this.message = message;
}
}
要将属性Login.token放在全局变量中,什么都不会发生。
我做了一些测试,这是我所知道的。
在HOME.ts中我放了一些console.log来弄清楚发生了什么。
console.log(this.navParams.data.data); ----> RESULT 1
console.log(this.navParams.get("data")); ----> RESULT 2
this.dadosRest = this.navParams.get("data");
console.log(this.dadosRest); ----> RESULT 3
console.log(this.dadosRest.token); -----> RESULT 4
结果1和2和3:
{success: {…}}
成功 : 码 : 200 信息 : &#34;欢迎管理员 - 这是您的令牌(由之前的电话生成)&#34; 代币 : &#34; 676f71bab54dad7589c3d1b6b5f5b24de0f8c484&#34; 的原 : 宾语 的原 : 对象
结果3:
未定义
为什么我无法将此返回信息放入对象登录管理?
答案 0 :(得分:0)
不要使用全局变量。 您可以使用shared service(创建注入组件的服务,使用方法存储令牌,另一个读取存储值)或将其存储在某种存储中(像Ionic Storage)或甚至(和更复杂的)使用一些状态容器,如Redux。
无论如何:不要污染全球范围。也许你可以用
之类的东西来做这件事window.token = 'the token'
但这不是一个好的意识形态。