首页 > 解决方案 > 表单控件上的属性被删除(反应形式)

问题描述

我有这个模型:

export class PlantArea {
  constructor(
    public id?: number,
    public code?: string,
    public name?: string,
    public plantId?: number,
    public plant?: Plant,
    public company?: Company
  ) {}
}

我已经设置了这个表格:

form: FormGroup = new FormGroup({
    id: new FormControl(this.formData.id),
    code: new FormControl(this.formData.code, [Validators.required]),
    name: new FormControl(this.formData.name, [Validators.required]),
    company: new FormControl(this.formData.company, [Validators.required]),
    plant: new FormControl(this.formData.plant, [Validators.required]),
  });

我有一个网格,其中有一个编辑按钮。单击它会显示编辑表单,设置一个输入属性,该属性通过以下方式将所选实体绑定到表单this.form.reset(entity)

@Input() set model(entity: T) {
    console.log(entity);
    this.form.reset(entity);
    console.log(this.form.value);
    this.active = entity !== undefined;
    this.editMode = entity?.id ? true : false;
  }

问题是,通过重置表单值,plant属性被删除并且 appr. 控制值未设置。如果我记录实体,则plant属性存在,但如果我记录表单值,则plant属性消失:

在此处输入图像描述

为什么是这样?我想不通。表单上有一个plant控件,所以它应该将值绑定到这个,对吧?

标签: angularangular-reactive-forms

解决方案


原来,这是一场虚惊。我最初禁用了植物控制,这就是为什么form.value没有plant属性。

另请参阅:禁用控件不包含在表单值中


推荐阅读