我正在使用元数据对象动态创建一个非常大的表单(大约400个输入,尽管在stackblitz示例中显示了一个小示例)。我需要使用元数据结构将特定于输入的信息传递给输入(即输入类型、选择选项、步长等)。当我的html ng-template在内部被递归调用,并且随后,父表单不被识别。当我超过初始递归级别时,ReactiveForm无法跟踪到所需的formGroup。
从本质上讲,formGroupName似乎无法遍历递归模板的各个级别。
我已经旋转我的轮子一段时间,试图让这个功能,但无济于事。
我有一个stackblitz示例来说明我想要做的事情。
https://stackblitz.com/edit/angular-jndvkb
任何帮助找出为什么通过FormGroup的路径不能在模板中工作,我们将不胜感激。
发布于 2019-05-18 01:55:12
无论出于什么原因,formGroupName都不能进入ng容器。为了解决这个问题,我将模板移到了ng- formGroupName的顶部,并将其更改为formGroup。将formGroup实例传递给ng-template,并在其中创建嵌套/递归表单。
解决方案堆栈闪电战:https://stackblitz.com/edit/angular-k9saz2
我仍然不知道问题的根本原因,但现在我有了一个从初始formGroup递归生成的表单,并将所有验证器绑定到每个输入。我还可以访问元数据结构,以便在需要时呈现输入。
我还可以轻松地添加/删除/编辑输入,只需更改构造函数中的初始formGroup声明即可。这使得以后的维护非常容易。
对我来说,下一步是将所有的formGroup和元数据生成转移到一个服务中,并将它们作为输入传递到这个组件中,这样我就可以在不同的表单组中重用这个模板。
https://stackoverflow.com/questions/56176052
复制相似问题