我在表单中有选项卡,包括外部表单的输入字段。 在渲染方面,我收到以下错误:
ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'false'. Current value: 'true'.
根据Chrome中的堆栈跟踪,以下行有问题:
我猜这个错误与角度变化检测机制和组件树有关。如果表单的输入字段放在选项卡之前,并且选项卡不包含属于外部表单的表单元素,则不存在ExpressionChangedAfterItHasBeenCheckedError。也许检测到的更改值是表单的有效性。
使用plunker复制方案:https://embed.plnkr.co/lZgCb0cyX8TnZ2j8ZE4O
请参阅有关重现错误的评论。
提前致谢!
答案 0 :(得分:2)
从你的plunker,我看到你混合了"模板驱动的形式"和#34;反应形式"图案。您在输入上同时拥有[(ngModel)]
和formControlName
。当您将绑定到模型的输入值更改为formControl值时,将无效,从而出现错误。
<强> Plunker 强>