【发布时间】:2018-05-26 08:28:42
【问题描述】:
我的导航栏 (app.component.html) 上有一个按钮,我只想在用户登录时显示该按钮。 这是我目前的方法,由于后面解释的明显原因而不起作用。我想知道如何修改它以使其工作。
在我的 app.component.html 中,我有以下按钮
<button *ngIf="isCurrentUserExist">MyButton</button>
在我的 app.component.ts 中,我试图将变量 isCurrentUserExist 绑定到一个函数,如果用户存在则返回 true。 我相信这是问题所在,因为此代码仅在 OnInit 执行一次,而不是以某种方式保持视图更新
ngOnInit() {
this.isCurrentUserExist = this.userService.isCurrentUserExist();
}
供参考,在我的 UserService.ts 中
export class UserService {
private currentUser: User
constructor(private http: Http,private angularFire: AngularFire) { }
getCurrentUser(): User {
return this.currentUser
}
setCurrentUser(user: User) {
this.currentUser = user;
}
isCurrentUserExist(): boolean {
if (this.currentUser) {
return true
}
return false
}
}
关于我的应用的更多信息... 在用户不存在时启动时,我有一个登录屏幕(登录组件)。 当用户登录时,它会转到 firebase 并获取用户信息(异步)并将其存储到我的用户服务中
setCurrentUser(user: User)
所以此时,我想更新导航栏中的按钮(存在于 app.component.html 中)并显示该按钮。
我能做些什么来实现这个目标?
【问题讨论】:
标签: html angular typescript