我正在创建嵌套组件。有多个formGroups我想动态绑定它们。例如。
组件中的forGroup就像
formGroup : {
controls:{
firstName: FormControl,
lastName: FormControl,
userName: FormControl,
Password: FormControl
}
}
HTML就像&它适用于多种控制..
<div [formGroup]='formGroup'>
<div class="error-box">{{formGroup.controls.get('firstName').errors}}</div>
<div *ngIf="formControl.firstName?.visible" [ngClass]="{'has-error': formControl.firstName.error}">
<label>{{formGroup.controls.get('firstName').label}}</label>
<input type="text" formControlName="firstName" [maxlength]="formContrl.firstName?.maxLength">
<span class="error" *ngif="formControl.firstName.error"></span>
</div>
<div class="error-box">{{formGroup.controls.get('lastName').errors}}</div>
<div *ngIf="formControl.lastName?.visible" [ngClass]="{'has-error': formControl.lastName.error}">
<label>{{formGroup.controls.get('lastName').label}}</label>
<input type="text" formControlName="lastName" [maxlength]="formContrl.lastName?.maxLength">
<span class="error" *ngif="formControl.lastName.error"></span>
</div>
</div>
我想在通用组件中绑定控件。
我试过了。
<text-input [group]="formGroup.controls.firstName" [formControls]="formControl.firstName"></text-input>
所以我正在创建常见的HTML,但是当我尝试绑定它时,它给出了绑定指令formControlName="formControls.name //withwhat I am passing"
的错误
答案 0 :(得分:9)
刚遇到同样的问题......
您必须使用User
代替[formControlName]="formControls.name"
。
此处提供更多信息https://angular.io/docs/ts/latest/cookbook/dynamic-form.html。
答案 1 :(得分:-1)
可以嵌套表格。我想你会在本文中找到你需要的东西:
How to Build Nested Model-driven Forms in Angular 2
如果您不需要嵌套表单,那么使用FormBuilder进行绑定非常简单(该示例在最后两个字段中包含验证器):
import { FormBuilder, Validators, FormGroup } from '@angular/forms'
;
let myForm = formBuilder.group({
firstName: [this.myModel.firstName],
lastName: [this.myModel.lastName],
userName: [this.myModel.userName, Validators.required],
Password: [this.myModel.Password, Validators.required]
});