Angular 关闭警报后再次出现

Angular make alert apear again after dismissing it

我正在做一些 Angular 项目,我在其中将对象添加到 table,但并非所有对象的字段都有效我正在向用户显示警报。我有以下问题:及时解除警报后,他们不会回来...... html:

中的代码
<span *ngIf="errorMessage!=null && errorMessage!=''"  name="errorSpan" class="alert alert-warning alert-dismissible msg" role="alert">
  <strong>{{errorMessage}}</strong>
    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
        <span aria-hidden="true">&times;</span></button>
    </span>

在 TS 中:

errorMessage:string;
isWorkerValid():boolean{
    this.errorMessage="";
    if(this.workerInserted.id==null || this.workerInserted.id=="" || this.workerInserted.id.length<9 || this.workerInserted.id.length>9){
      this.errorMessage+="מספר הזהות של העובד אינו תקין"+"\n";
    }
    if(this.workerInserted.name==null || this.workerInserted.name==""){
      this.errorMessage+="שם העובד אינו תקין"+"\n";
    }    
    if(this.errorMessage!=""){
        return false;
    }         
    return true;
  }

我尝试使用 ng-show - 对我根本不起作用! - 和 dang-click="errorMessage=''",等等 ng-click="errorMessage=''" 我不能在我的 Angular 中使用 javascript,或者我认为是这样。所以我不能使用 $scope.hideAlert()=function(){ $scope.serverError = false; }

之类的东西

正如我在此处的一些回答中看到的那样。 尽管如此,在解除警报一次后,它不会在我第二次要求时返回。 谁能帮帮我???

Angular2+中没有ng-showng-clickng-show 现在是 [hidden]ng-click(click) 但这超出了重点。

它不再出现的原因是我敢打赌,当您单击 close 按钮时,bootstrap-4 会从 DOM/HTML 中永久删除 span

尝试将其包裹在外面ng-container

<ng-container *ngIf="errorMessage">
  <span name="errorSpan" 
    class="alert alert-warning alert-dismissible msg" role="alert">
  <strong>{{errorMessage}}</strong>
    <button type="button" class="close" data-dismiss="alert" aria-label="Close"
       (click)="onDismissError()"
>
        <span aria-hidden="true">&times;</span></button>
    </span>
</ng-container>
....
onDismissError() {
  this.errorMessage = undefined;
}

这样,每次 errorMessage 值更改时,ng-container 内部的内容都应该重新绘制。