【发布时间】:2018-05-08 21:59:23
【问题描述】:
因此,我不想在同一个组件中使用嵌套的 formGroup,而是希望有一个可以集成到父组件中的子组件。 是否应该将来自子级的控件添加到父级的 FormBuilder 中?如何?我确实希望在 FormBuilder 组定义中包含整个模型,包括子字段。
我在 FormBuilder 中添加了来自子级的控件(如下所示,如果它们已在父级中定义),但出现错误:
无法在字符串“input1”上创建属性“validator”
涉及的四个文件如下:
父.ts
this.myForm = formBuilder.group({
'input1': [null, [Validators.required, Validators.minLength(3)]],
'myNestedGroup': this.formBuilder.group({
'input2': [{ value: '', disabled: false }] ///? correct
})
}
);
父.html
<child-selector>
</child-selector>
child.ts
import { Component, OnInit, Input } from '@angular/core';
import { FormGroup, AbstractControl, FormBuilder, Validators } from '@angular/forms';
@Component({
selector: 'child-selector',
templateUrl: './child-selector.html'
})
export class ChildComponent implements OnInit {
myInput = 'input2';
formGroup = 'myNestedGroup';
constructor() { }
ngOnInit() {
}
}
child.html
<div [formGroup]="formGroup" >
<input type="text" [formControl] = "myInput" />
</div>
【问题讨论】: