这应该很简单,但我发现它非常令人生畏 .
我有一个带有嵌套表单组件的Angular2(RC.5)表单 . 我不是百分百肯定我做得对,但它现在正在工作......
(注意:名称已更改,样本已简化以保护客户端)
嵌套表单控件:
@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();
}
我已经尝试在嵌套控件上实现我自己的“重置”方法并手动重置控件,但是当我到达从父控件数组返回的嵌套表单对象上的方法时,嵌套表单上没有任何控件对象被实例化 - 我知道并非如此,因为我从我实现的嵌套表单的 Launcher 中获取数据(未显示) .
那么有没有人能够成功地将 NESTED 表单控件重置为原始状态?我怎样才能做到这一点?