Angular 2动态表单更改生成异常“表达式已更改”

时间:2016-12-12 10:19:10

标签: angular angular2-forms dynamicform

我正在尝试动态生成复杂的嵌套表单,但我无法让它工作。

结果与此类似: Mock of desired result

用户必须选择一个文件,它是哪种文件,描述并完成所需的元数据。 之后他将能够提交文件。

问题在于,当我动态生成表单时,我得到:“表达式在检查后发生了变化。上一个值:'true'。当前值:'false'。”

我正在尝试对构建表单的部分强制进行更改检测,如下所示:

this.metadataForm = this.docMetService.toFormGroup(this.metadataDefinitions);
this.changesDetector.markForCheck();

但错误仍然存​​在。

有任何帮助吗? 提前谢谢

1 个答案:

答案 0 :(得分:0)

让我猜一下。 您在某处访问控件的有效属性,该属性最初是有效的,因为您可能没有加载可能会更改有效性的表单部分。

“表情在被检查后发生了变化”意味着某些东西超出了有角度的眼睛。

要解决此问题,请尝试从模板中删除该有效性检查,然后进行测试以查看一切正常。

然后,只是为了测试,将创建所有动态表单块的main方法放入setTimeout(这有助于角度重新运行cd),最后运行cd.detectChanges。