重置Angular2中的嵌套表单

时间:2016-08-31 05:42:25

标签: angular angular2-directives angular2-forms

这应该很简单,但我发现它非常令人生畏。

我有一个带有嵌套表单组件的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 表单控件重置为原始状态方面取得了哪些成功?我怎么能这样做?

0 个答案:

没有答案