我正在处理一些 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">×</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=''"
正如我在此处的一些答案中看到的那样。 尽管如此,在解除警报一次后,它不会在我第二次要求时回来。 谁能帮帮我???
答案 0 :(得分:0)
ng-show
2+ 中没有 ng-click
Angular
。 ng-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">×</span></button>
</span>
</ng-container>
....
onDismissError() {
this.errorMessage = undefined;
}
这样,每次 ng-container
值更改时,errorMessage
中的内容都应该重新绘制。