所以我发现了类似的问题,并尝试了手动更改检测等解决方案,但我无法让它发挥作用。
我想在一个组件(app.component.ts)中有一个navegation bar元素,我想在另一个组件(login.component.ts)的参数(_isSessionActive:boolean)从im变为false时显示该组件视图(login.component.html)。这不会发生。我可能做错了什么,但我有一个类似的项目,使用类似的结构,我不明白为什么。我尽我所能简化了代码。提前谢谢。
app.component.html
<nav class="navbar">
<li><a href="#" *ngIf="loginComponent._isSessionActive==true" routerLink="/admin">Admin</a></li>
</nav>
<router-outlet></router-outlet>
app.component.ts
@Component({
moduleId:module.id,
selector: 'my-app',
templateUrl: `app.component.html`,
providers:[UserService,LoginComponent]
})
export class AppComponent {
constructor(private loginComponent:LoginComponent) {
}
}
login.component.html
<button (click)="isSessionActiveTrue()">true</button>
<button (click)="isSessionActiveFalse()">false</button>
<button (click)="isSessionActiveCheck()">check</button>
login.component.ts
@Injectable()
export class LoginComponent {
_isSessionActive: boolean = false;
constructor(private router: Router) {
}
isSessionActiveTrue(){
this._isSessionActive=true;
}
isSessionActiveFalse(){
this._isSessionActive=false;
}
isSessionActiveCheck(){
console.log(this._isSessionActive);
}
}
答案 0 :(得分:0)
除了极其混乱的名字,你为什么要这样做
*ngIf="loginComponent._isSessionActive==true"
当
*ngIf="loginComponent._isSessionActive"
很好吗?