我正在使用Angular2创建一个Web应用程序。我有几个数据输入屏幕,用户必须在其中输入邮政地址,该地址是诸如Company或Person之类的实体的较大数据输入的一部分。
因此,我自然希望创建一个地址表单组件,该组件可以作为子表单重用,并以某种方式嵌入或包含在较大的表单中。这似乎应该可行,但是我无法创建示例或查找示例。我试图创建一个具有FormBuilder作为输入的子组件,但这不起作用。
对我来说,问题是我似乎无法成功将封闭的<form>标记传达给我的html模板。
有人知道这种方法吗?
仅用于<=角度<= 2.0.0 RC
我不知道这是否是个好方法,但似乎可行
@Component({
selector: 'address-form',
providers: [],
styles: [':host {display: inline-block; border: 1px solid blue;}'],
template: `
<input [ngFormControl]="street">
<input [ngFormControl]="zip">
`,
directives: []
})
export class AddressForm {
street = new Control('', Validators.minLength(3));
zip = new Control('', Validators.required);
isSet:boolean;
@Input() group;
constructor() {}
ngOnChanges() {
setTimeout(()=> {
this.group.control.addControl('street', this.street);
this.group.control.addControl('zip', this.zip);
});
}
}
Run Code Online (Sandbox Code Playgroud)
<form #f="ngForm">
<input ngControl="custId">
<address-form ngControlGroup="address" #addrGroup="ngForm" [group]="addrGroup"></address-form>
</form>
Run Code Online (Sandbox Code Playgroud)
另请参见Kara与Plunker的评论 https://github.com/angular/angular/issues/10251#issuecomment-238737954
| 归档时间: |
|
| 查看次数: |
1710 次 |
| 最近记录: |