在我的angular 7应用程序中,如果在输入字段中按Enter键却出现此错误,但如果单击搜索按钮,则不会得到此错误:
ExpressionChangedAfterItHaHasBeenCheckedError:检查表达式后,表达式已更改。上一个值:'igx-input-group--focused:true'。当前值:“ igx-input-group--focused:false”。
触发它的代码如下:
<igx-input-group>
<label igxLabel for="search">Asset Search</label>
<input #search igxInput type="text" class="form-control" id="search" [(ngModel)]="searchText"
required (keyup.enter)="onSearchPressed()">
<igx-hint>Search by S/N, Etag, barcode or RFID</igx-hint>
</igx-input-group>
<button class="btn btn-primary" (click)="onSearchPressed()" [disabled]="searchButtonDisabled">
Search
</button>
如您所见,同时按下Enter和单击按钮都将调用onSearchPressed()
方法。我不明白为什么一个会导致错误,而另一个却不会。
答案 0 :(得分:0)
我只是在猜测,但是此错误很可能是由于igxInput
对enter
印刷机也做出了反应。由于igxInput
指令绑定到<input>
标记,因此它对enter做出反应,但对单击<button>
元素的反应不起作用。
答案 1 :(得分:0)
在setTimeout中包装您的方法,之后它将运行自己的changedetection,并且此错误将消失。
希望有帮助