Angular 解除警报后再次出现警报

时间:2021-05-19 19:04:43

标签: angular typescript bootstrap-4 alert

我正在处理一些 Angular 项目,在该项目中我将对象添加到表中,但并非所有对象的字段都有效,我正在向用户显示警报。我有以下问题:在一次解除警报后,它们不会回来...... html中的代码:

scrollok

在 TS 中:

<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>

我尝试使用 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=''" 我不能在我的 Angular 中使用 javascript,或者我是这么认为的。所以我不能使用 ng-click="errorMessage=''"

之类的东西

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

1 个答案:

答案 0 :(得分:0)

ng-show 2+ 中没有 ng-click Angularng-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;
}

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