我正在尝试动态生成复杂的嵌套表单,但我无法让它工作。
结果与此类似: Mock of desired result
用户必须选择一个文件,它是哪种文件,描述并完成所需的元数据。 之后他将能够提交文件。
问题在于,当我动态生成表单时,我得到:“表达式在检查后发生了变化。上一个值:'true'。当前值:'false'。”
我正在尝试对构建表单的部分强制进行更改检测,如下所示:
this.metadataForm = this.docMetService.toFormGroup(this.metadataDefinitions);
this.changesDetector.markForCheck();
但错误仍然存在。
有任何帮助吗? 提前谢谢
答案 0 :(得分:0)
让我猜一下。 您在某处访问控件的有效属性,该属性最初是有效的,因为您可能没有加载可能会更改有效性的表单部分。
“表情在被检查后发生了变化”意味着某些东西超出了有角度的眼睛。
要解决此问题,请尝试从模板中删除该有效性检查,然后进行测试以查看一切正常。
然后,只是为了测试,将创建所有动态表单块的main方法放入setTimeout(这有助于角度重新运行cd),最后运行cd.detectChanges。