当我查看有关Angular表单的教程时,我看到有些人使用form.controls['key']
来访问FormControl,而另一些人则使用form.get('key')
来访问FormControl。
我应该使用哪一个,在什么情况下?
由于文档get()
该方法可以采用2种类型的参数:
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
则有出错的风险:如果element1
不存在,则form['element1']['element2']
<- 错误。
至于我 - 使用 get(( 方法更方便,特别是如果您想在代码中生成必要的表单控制的路径。