Angular2 Atfer订阅事件div未更新

时间:2016-11-04 11:55:43

标签: angular

我有一个问题: 在一个视图中,我想重新编写错误消息

// HTML

<div [(hidden)]="!errorMessage" class="alert alert-warning alert-dismissible" role="alert">
    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
    <span aria-hidden="true">&times;</span>
    </button>
    <strong>Error</strong> {{ errorMessage }}
</div>

//元器件

ngOnInit(){
  this.authService.authenticated.subscribe(result => {
    if(result){
      this.navigateToHome();
    }
  });
  this.authService.authenticationError.subscribe(message => {
    this.errorMessage = message;
    this.showError(message);
    console.log(message);
  })
}

现在的问题:只有当我第二次使用时才会显示errorMessage。 控制台每次显示一条消息,但div仅更新每一个请求。 总是调用处理程序!

我用以下内容对该属性进行了解析:@Output()public errorMessage:string;

但这似乎没有帮助

任何想法?

1 个答案:

答案 0 :(得分:0)

使用*ngIf代替[(hidden)],如下所示:

<div *ngIf="errorMessage" class="alert alert-warning alert-dismissible" role="alert">
    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
    <span aria-hidden="true">&times;</span>
    </button>
    <strong>Error</strong> {{ errorMessage }}
</div>