Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular formGroup中的面片值,formArray的角度?_Angular_Angular Reactive Forms - Fatal编程技术网

Angular formGroup中的面片值,formArray的角度?

Angular formGroup中的面片值,formArray的角度?,angular,angular-reactive-forms,Angular,Angular Reactive Forms,可复制示例 这是我正在处理的示例数据 app.component.ts editTrainner(trainner: Trainner) { this._trainnerservice.currentTrainner = Object.assign({}, trainner); this.registrationForm.patchValue({ personal_details: { type: Object, name: { typ

可复制示例

这是我正在处理的示例数据

app.component.ts

editTrainner(trainner: Trainner) {
    this._trainnerservice.currentTrainner = Object.assign({}, trainner);
    this.registrationForm.patchValue({
          personal_details: { type: Object,
            name: { type: Object,
                first_name: this._trainnerservice.currentTrainner.personal_details.name.first_name,
                last_name: this._trainnerservice.currentTrainner.personal_details.name.last_name
            },
            dob: this._trainnerservice.currentTrainner.personal_details.dob,
            about_yourself: this._trainnerservice.currentTrainner.personal_details.about_yourself,
            languages_known: this.fb.array([this.addlanguages_known()]),
            willingly_to_travel: this._trainnerservice.currentTrainner.personal_details.willingly_to_travel
        }
    });
  }
  addlanguages_known(): any {
    const control = this.registrationForm.get('languages_known') as FormArray;
    this._trainnerservice.currentTrainner.personal_details.languages_known.forEach(x => {
        control.push(this.fb.control(''));
      });
  }
执行代码时,我收到一个错误:“无法读取null的属性'push'


我想在用户单击编辑按钮时将表单数组数据推入表单

首先,您应该从
patchValue
内部删除用于设置formarray中的值的函数。而是按原样调用函数
addlanguages\u known()
。那么您到formarray的路径是不正确的。您的表格位于个人详细信息中,请更正为:

addlanguages\u known():任意{
const control=this.registrationForm.get('personal\u details.languages\u known')作为FormArray;
这是.\u trainerservice.currentTrainer.personal\u details.languages\u known.forEach(x=>{
control.push(this.fb.control(x));
});
}
如前所述,从
editTrainer()
中删除以下行:

languages\u known:this.fb.array([this.addlanguages\u known()]),


PS:不相关,但您使用的是某种通用类型的
对象
,您应该根据模型键入数据。

这与在其他表单组中加载数据的方式相同吗?