如果我有一个表格:
const form = new FormGroup({
foo: new FormControl(''),
});
我想动态地添加一个控件,比如:
form.addControl('bar', new FormControl(''));
我收到一个错误,似乎回到了
bar
not being defined in form
。该错误建议将其添加为可选属性。 文档还说:
在强类型组中,控件必须属于该组的类型(可能作为可选键)。
看来我可以通过两种方式添加它:
FormGroup
的泛型参数中显式指定完整的Form模型,包含可选的bar
属性。我不想这样做,因为实际上它是一个大而复杂的对象。const form = new FormGroup<{ foo: string, bar?: string }>({
...
});
bar
作为 FormGroup
对象参数中的可选属性,但看起来我需要用它声明关联的 FormControl
值,这意味着它已经在表单中(我想在没有它的情况下开始) const form = new FormGroup({
foo: new FormControl(''),
bar?: new FormControl('')
});
我需要添加一个我实际上想动态添加的
FormControl
似乎很矛盾
有更好的方法吗?
Stackblitz:https://stackblitz.com/edit/angular-xsu9at?file=src%2Fadd-control.ts