这应该很简单,但我发现它非常令人生畏。
我有一个带有嵌套表单组件的Angular2(RC.5)表单。我并非100%确定我做得对,但它现在正在工作......
(注意:名称已更改,样本已简化以保护客户端)
嵌套表单控件:
@Component({
selector: "nested-form",
templateUrl: "Content/templates/shared/nestedForm.htm"
})
export class NestedFormComponent extends FormGroup implements OnInit {
// Implementation omitted
}
主要表格:
@Component({
selector: "main-form",
templateUrl: "Content/templates/core/mainForm.htm",
directives: [NestedFormComponent]
})
export class MainFormComponent implements OnInit {
public formObj: FormGroup;
constructor(
private fb:FormBuilder
) { }
ngOnInit() {
// Create our form group
this.formObj= this.fb.group({
myNested: this.fb.array([new NestedFormComponent()])
});
}
// Rest of implementation omitted
}
因此除了重置表单(客户端要求之一)之外,这适用于所有内容。我尝试在父表单上调用reset,并尝试通过执行以下操作在嵌套表单上调用reset:
private resetNestedForm() {
let nested = <NestedFormComponent>(
<FormArray>this.formObj.controls["myNested"])
.controls[0];
nested.reset();
}
我已尝试实施自己的&#34;重置&#34;嵌套控件上的方法和手动重置控件,但是当我到达从父控件数组返回的嵌套表单对象上的方法时,嵌套表单对象上没有任何控件被实例化 - 我知道它不是&#39 ;因为我从我实现的嵌套表单发射器(未显示)中获取数据。
有没有人在将 NESTED 表单控件重置为原始状态方面取得了哪些成功?我怎么能这样做?