Angular2 不支持表单中的嵌套属性
Angular2 doesnot support nested properties in form
在 Angular2 中支持嵌套字段的任何方式。
Class
ngOnInit() {
this.form = this._fb.group({
name: {
given: ['', Validators.required],
middle: [''],
family: ['', Validators.required]
}
});
}
模板
<form [ngFormModel]="form">
<input ngControl="name.given" type="text" placeholder="First Name">
<input ngControl="name.middle" type="text" placeholder="Middle Name">
<input ngControl="name.family" type="text" placeholder="Last Name">
</form>
我在控制台中收到以下 Cannot find control 'name.given'
错误输出。我已经针对 ngControl
尝试了一些其他语法 name['given']
、name[given]
等,但得到了同样的错误。
如何在 angular2 中使用嵌套字段?
您修复内联表单(使用 ngControl
)和程序化表单使用 FormBuilder
- 在这种情况下,您需要使用 ngFormControl
).
我认为您正在寻找表单组。这是一个示例:
<div ngControlGroup="name" #cgName="ngForm">
<p>First: <input ngControl="give" required></p>
<p>Middle: <input ngControl="middle"></p>
<p>Last: <input ngControl="family" required></p>
</div>
看到这个 plunkr:https://plnkr.co/edit/M4FGTNAx8lo8jzBivH0P?p=preview。
在 Angular2 中支持嵌套字段的任何方式。
Class
ngOnInit() {
this.form = this._fb.group({
name: {
given: ['', Validators.required],
middle: [''],
family: ['', Validators.required]
}
});
}
模板
<form [ngFormModel]="form">
<input ngControl="name.given" type="text" placeholder="First Name">
<input ngControl="name.middle" type="text" placeholder="Middle Name">
<input ngControl="name.family" type="text" placeholder="Last Name">
</form>
我在控制台中收到以下 Cannot find control 'name.given'
错误输出。我已经针对 ngControl
尝试了一些其他语法 name['given']
、name[given]
等,但得到了同样的错误。
如何在 angular2 中使用嵌套字段?
您修复内联表单(使用 ngControl
)和程序化表单使用 FormBuilder
- 在这种情况下,您需要使用 ngFormControl
).
我认为您正在寻找表单组。这是一个示例:
<div ngControlGroup="name" #cgName="ngForm">
<p>First: <input ngControl="give" required></p>
<p>Middle: <input ngControl="middle"></p>
<p>Last: <input ngControl="family" required></p>
</div>
看到这个 plunkr:https://plnkr.co/edit/M4FGTNAx8lo8jzBivH0P?p=preview。