我对Angular 2很新,我有一点问题。
我有一个标题组件,在标题中我想使用ngIf
,因为在登录屏幕中我会隐藏标题(导航栏)。
此外,我想从标题中隐藏更多内容,具体取决于用户配置文件。
要存储,如果用户已登录,我有一个名为 variables.ts 的全局服务,如下所示:
import { Injectable } from '@angular/core';
@Injectable()
export class Variables {
private url = "...";
private username;
private password;
private isLoggedIn = false;
constructor() {}
setUrl(val) {
this.url = val;
}
getUrl() {
return this.url;
}
setUsername(val) {
this.username = val;
}
getUsername() {
return this.username;
}
setPassword(val) {
this.password = val;
}
getPassword() {
return this.password;
}
setIsLoggedIn(val) {
this.isLoggedIn = val;
}
getIsLoggedIn() {
return this.isLoggedIn;
}
}
我的标题组件如下所示:
import { Component } from '@angular/core';
import { Router } from '@angular/router';
import { Variables } from '../../services/variables';
@Component({
selector: 'app-header',
moduleId: module.id,
templateUrl: 'header.component.html'
})
export class HeaderComponent {
constructor(private variables: Variables) {}
isLoggedIn() {
return this.variables.getIsLoggedIn();
}
console.log(loggedIn);
}
最后但并非最不重要的是,在header.component.html中我这样做了:
<nav class="navbar navbar-default navbar-static-top" *ngIf="isLoggedIn()">
我现在的问题是,标头组件不会自动更新var loggedIn
,因此如果我已登录,则会隐藏标头。
如何使其正常运作?
答案 0 :(得分:0)
我更新了我原来的帖子,现在它正在运行;) 谢谢你的帮助!
解决方案:不要将它直接绑定到变量,而是绑定到函数,并在“ngIf”中只询问函数;)