从Angular2中的服务填充FormBuilder

时间:2016-10-12 03:59:18

标签: javascript angular typescript

我有一个Angular2模型,我通过服务填充。我想使用这个模型然后填充我的表单(从FormBuilder构建),以便我的用户可以编辑数据。

以下是我目前正在做的事情,但是我的模型中存在的字段中的错误在我的表单中没有公开。

  ...
  ngOnInit(): void {
    this.buildForm();
    this.get('1');
  }
  get(id: string) {
    this.myModelsService.get(id)
      .subscribe(
        d => {
          this.myModel = d;
          this.myForm.setValue(d);
        },
        error => console.log(error)
      );
  }

这样可行,但我收到Cannot find form control with name: incidentTimeStamp等错误。

我是否应该首先删除我知道没有相应表单控件的属性?或者有更好的方法来做我想做的事情吗?

能够填充字段进行编辑似乎是一个非常基本的构建块,这似乎比它应该更难。

1 个答案:

答案 0 :(得分:0)

解决方案是使用FormGroup.patchValue()

FormGroup.setValue()会进行严格检查,而FormGroup.patchValue()则不会。