Angular 2何时使用controls []以及何时在FormControl中使用get()

时间:2017-08-21 15:16:16

标签: angular

当我查看有关Angular表单的教程时,我看到有些人使用form.controls['key']访问FormControl,而其他人则使用form.get('key')来执行此操作。

我应该使用哪一种,以及在什么情况下?

1 个答案:

答案 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()方法更方便,特别是如果你想在代码中生成必要的表单控件的路径。