Angular 角度2-更新视图/组件
我有一个带有Angular 角度2-更新视图/组件,angular,Angular,我有一个带有ngOnInit()的组件和一个login()方法 登录完成后,如何更新组件并再次执行Ngonit方法 ngOnInit() { this.loading = true; this._guestService.getAllGuests() .subscribe( guests => this.guests = guests, err => console.log(err),
ngOnInit()
的组件和一个login()
方法
登录完成后,如何更新组件并再次执行Ngonit方法
ngOnInit() {
this.loading = true;
this._guestService.getAllGuests()
.subscribe(
guests => this.guests = guests,
err => console.log(err),
() => console.log('Request Complete')
)
}
login() {
this.auth.login();
}
logout() {
this.auth.logout();
}
auth.login
服务:
login() {
this.lock.show((error: string, profile: Object, id_token: string) => {
if (error) {
console.log(error);
}
localStorage.setItem('profile', JSON.stringify(profile));
localStorage.setItem('id_token', id_token);
});
}
我会重命名
ngOnInit()
类似getAllGuests()
的东西,然后从ngOnInit()
和auth.login()中调用getAllGuests()
如果您不能或不想在auth.login()
中插入此调用,我想事情可能会变得更加微妙,需要使用Observable的某种订阅机制,但在启动此路径之前,我会确保您确实需要它
我希望这有帮助我会重命名ngOnInit()
类似于getAllGuests()
的东西,然后从ngOnInit()
内和auth.login()内调用getAllGuests()
如果您不能或不想在auth.login()
中插入此调用,我想事情可能会变得更加微妙,需要使用Observable的某种订阅机制,但在启动此路径之前,我会确保您确实需要它
我希望这有帮助这是Picci答案的扩展,我会在订阅登录()时调用getAllGuests:
这是Picci答案的扩展,我将在订阅login()时调用getAllGuests:
ngOnInit()
中的代码似乎与当前登录状态无关。为什么要再次执行ngOnInit()
?ngOnInit()
中的代码似乎与当前登录状态无关。为什么要再次执行ngOnInit()
?因此,我的this.auth.login()
服务必须从登录返回一个可观察的成功?它必须返回可观察的。查看此帖子了解更多详细信息:您能给我一个建议吗?登录成功后如何启动“getAllGuestd”方法?在订阅登录中调用“getAllGuestId()。这将确保在登录完成/成功后调用它。因此,我的This.auth.login()
服务必须从登录返回一个可观察的成功?它必须返回可观察的。查看此帖子了解更多详细信息:您能给我一个建议吗?登录成功后如何启动“getAllGuestd”方法?在订阅登录中调用“getAllGuestId()。这将确保在登录完成/成功后调用它。
ngOnInit(){
this.getAllGuests();
}
getAllGuests() {
this.loading = true;
this._guestService.getAllGuests()
.subscribe(
guests => this.guests = guests,
err => console.log(err),
() => console.log('Request Complete')
)
}
login() {
this.auth.login().subscribe(()=> this.getAllGuests());
}
logout() {
this.auth.logout();
}