当我查看有关Angular表单的教程时,我看到有些人使用form.controls['key']
访问FormControl,而其他人则使用form.get('key')
来执行此操作。
我应该使用哪一种,以及在什么情况下?
答案 0 :(得分:2)
由于文档get()
方法可以采用两种类型的参数:
get(path: Array<string | number> | string)
,因此您可以通过以下方式将嵌套表单控件的完整路径传递给.get()
方法:
this.form.get('person.name');
this.form.get(['person', 'name']);
如果您直接访问[controls]
- 如果您尝试获得更深层次的嵌套元素,则只能获得第一级嵌套控件元素并且有获得'can not read property 'formElementName' of undefined
错误的风险:form['element1']['element2']
&lt; - 如果element1
不存在则出错。
至于我 - 使用get()方法更方便,特别是如果你想在代码中生成必要的表单控件的路径。