Angular 插值不';在第一次加载页面时不工作
登录后,用户键入自己的姓名并单击登录,下一页将不显示姓名。如果他回去重试,它会在那时和之后工作 在HTML模板上:Angular 插值不';在第一次加载页面时不工作,angular,promise,ionic2,interpolation,Angular,Promise,Ionic2,Interpolation,登录后,用户键入自己的姓名并单击登录,下一页将不显示姓名。如果他回去重试,它会在那时和之后工作 在HTML模板上: <ion-title>Your name is {{name}}</ion-title> 当用户登录时,您可以在组件中公开一个事件(离子事件),只需订阅您定义的事件即可。每当事件触发时,您都可以更新您的属性 你的应用程序无法运行,因为在早期状态下,存储不会持久保存任何数据,即使你从存储中获取数据,它也一文不值 constructor( privat
<ion-title>Your name is {{name}}</ion-title>
当用户登录时,您可以在组件中公开一个事件(离子事件),只需订阅您定义的事件即可。每当事件触发时,您都可以更新您的属性 你的应用程序无法运行,因为在早期状态下,存储不会持久保存任何数据,即使你从存储中获取数据,它也一文不值
constructor(
private events: Events,
private storage: Storage,
//...
) { }
login(/* params */) {
// after login successful, save name to storage
this.storage.set('name', JSON.stringify(name))
.subscribe(() => {
this.events.publish('login:success');
});
}
在组件上:
name: string;
constructor(public navCtrl: NavController, public navParams: NavParams, private storage: Storage) {
this.storage.get('name').then((val) => {this.name= val;});
}
name: string;
constructor(public navCtrl: NavController, public navParams: NavParams, private storage: Storage, private events: Events) {
this.storage.get('name').then((val) => {this.name= val;});
this.event.subscribe('login:success', () => {
this.storage.get('name').then((val) => {this.name= val;});
})
}
}
我认为您正在将下一页推到
storage.set()
part之外。因为,我没有访问您的代码的权限,正在演示应该如何执行。我相信这会奏效:
this.storage.set('name',"somename")
.then((val) => {
console.log("Value is set to somename");
this.navCtrl.push(NextPage);
});
这将在上一页中完成,您将在该页中设置存储器中的值
在这种情况下,可以确保您仅在设置了该值时才导航到下一页。该值何时存储在
this.storage
?您可以在上一个登录页面中添加该部分吗。我的意思是,除了第一次加载网站外,一切正常。