* ngIf在数据更改时不显示元素

时间:2017-03-07 15:09:04

标签: angular

所以我发现了类似的问题,并尝试了手动更改检测等解决方案,但我无法让它发挥作用。

我想在一个组件(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);
 }

 }

1 个答案:

答案 0 :(得分:0)

除了极其混乱的名字,你为什么要这样做

 *ngIf="loginComponent._isSessionActive==true"

*ngIf="loginComponent._isSessionActive"

很好吗?