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



当我查看有关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(( 方法更方便,特别是如果您想在代码中生成必要的表单控制的路径。

最新更新