zag*_*ggi 5 javascript typescript angular-bootstrap angular
哪些代码更改可以纠正下面描述的错误?
用例
下拉输入 UI 受到保护,不会通过模式意外选择值更改。但是,连接到下拉列表的事件(单击、焦点或其他)会导致在开发模式下的 Chrome 控制台中观察到的 ExpressionChangedAfterItHasBeenCheckedError。
观察结果
单击下拉菜单时,会引发ExpressionChangedAfterItHasBeenCheckedError (请参阅控制台)
预期结果
单击下拉菜单时,将打开一个模态框,不会出现错误
演示
stackblitz中演示的链接
笔记
哪些代码更改可以纠正下面描述的错误?
像这样的代码应该可以帮助你:
<select
[(ngModel)]="building.venueId"
#ngModel="ngModel"
^^^^^^^^^^^^^^^^^^
get hold of NgModel instance
...
(click)="ngModel.control.markAsTouched(); confirmChangeItem(building.venueId)">
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
and prepare FormControl to the changes
Run Code Online (Sandbox Code Playgroud)
更新
我忘了说cdRef.detectChanges在这种情况下您可以删除微任务,所以我很高兴知道您自己猜到了
| 归档时间: |
|
| 查看次数: |
1197 次 |
| 最近记录: |