gpt4 book ai didi

Angular 2 - 异常 : Expression 'ngClassUntouched has changed after it was checked

转载 作者:行者123 更新时间:2023-12-02 18:30:39 24 4
gpt4 key购买 nike

完整的错误消息是:

angular2.dev.js:23597 EXCEPTION: Expression 'ngClassUntouched in myComponent@7:12' has changed after it was checked. Previous value: 'true'. Current value: 'false' in [ngClassUntouched in MyComponent@7:12]

错误指向此控件:

<input [(ngModel)]="searchTxt" class="searchText" type="text" 
class="form-control" placeholder="Search all departments & sites"
(keypress)="handleKeyboard($event)" [ngClass]="{noBorder: tags.length >
0}" (keyup)="handleKeyboard($event)" autocomplete="off"/>

基本上,当我执行以下命令将焦点从 searchTxt 更改为动态创建的输入时,这种情况发生在 keyup 事件上:

this.inputs.toArray()[0].nativeElement.focus();

更多详细信息:这是动态创建的输入数组:

<div *ngFor="#item of records?.data">
<input #input name="r{{item.id}}" class="focusInputBox" type="text"/>
</div>

这些输入是以下结果:

@ViewChildren('input') inputs;

有什么建议吗?

我!!!

更新:我注意到 Angular 在 searchTxt 上添加了一些类:class="form-control searchText ng-untouched ng-valid ng-dirty"

当我设置输入框的焦点时,ng-untouched 引发到 searchTxt 中被添加。

最佳答案

将 focus() 包含在 setTimeout(...) 中,这就是导致 Angular 不期望更改时设置类的原因:

setTimeout(() => {
this.inputs.toArray()[0].nativeElement.focus();
}, 0);

关于 Angular 2 - 异常 : Expression 'ngClassUntouched has changed after it was checked,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36332418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com