angular - 表单控件上的属性被删除(反应形式)
问题描述
我有这个模型:
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
控件,所以它应该将值绑定到这个,对吧?
解决方案
原来,这是一场虚惊。我最初禁用了植物控制,这就是为什么form.value
没有plant
属性。
另请参阅:禁用控件不包含在表单值中
推荐阅读
- reactjs - 文件更改时页面刷新反应
- arrays - Kotlin 数组 在数组中?
- c++ - 为什么我不能改变`set循环中的值
>` - javascript - React - 测试 - 你不应该在外部使用
- python - 如何从数据库django中获取数据
- pycharm - 在 PyCharm 中为 .py 文件启用数据库的代码补全
- html - 无法加载资源:net::ERR_FAILED 与 YouTube 视频
- kotlin - Kotlin 中的 toString() - 错误的输出
- angular - Angular 10 构建显示空警告
- webpack - 为什么 css-loader/test.rule/css.file 扩展名必须将 i 放在 Regexp 之后?