angular - 嵌套表单组件在 ng-untouched 上抛出 ExpressionChangedAfterItHasBeenCheckedError
问题描述
我正在尝试将子组件设置为parentFromGroup
as@Input
并且我遇到了著名的错误,
ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'ng-untouched: true'. Current value: 'ng-untouched: false'.
我知道这个错误,但在这里我不明白为什么,因为我将值设置为从父级到子级不是相反的。你可以在这里查看
如果您单击“添加文章”按钮,然后尝试写入添加的字段,角度将引发错误。
实现我在这里尝试的最佳方法是什么?
解决方案
detectChanges()
您可以使用from ChangeDetectorRef
on input 字段事件修复此错误(input)
,如下所示。
HTML
<input placeholder="designation" (input)="onInputChange()" formControlName="designation">
TS
import { ChangeDetectorRef } from '@angular/core';
constructor(private cd: ChangeDetectorRef) {}
onInputChange() {
this.cd.detectChanges();
}
推荐阅读
- amazon-web-services - 为什么我在 RDS 默认 sqlserver_audit 参数组下看不到最近的事件?
- elixir - 使用具有多个 belongs_to 关系长生不老药的夹具测试控制器
- google-sheets - 将具有多个 Prod Col 的行拆分为具有单个 Prod Col 的多个行
- azure - Azure 数据工厂分页条目格式
- javascript - 如何计算html表格中一行中填充的单元格数
- java - 处理 - 将 hitTest 和 mousePressed 添加到具有 100 个球的动画中
- woocommerce - 将 woocommerce 数量框移至低于产品价格的操作 - 如果可能的话?
- php - 我应该如何更正格式错误的经纬度对以对 PHP 计算有效
- python - 关于 Python 的功能及其工作原理的一些问题
- sharepoint - List child items of SharePoint document sub folder