最佳答案
我已经注意到,如果我在一个角度2反应形式禁用控件,那么控件不包括在 form.value 中。例如,如果我像下面这样定义我的表单:
this.notelinkingForm = new FormGroup({
Enabled: new FormControl(settings.Enabled, Validators.required),
LinkToPreceeding: new FormControl({value: settings.LinkToPreceeding, disabled: !settings.Enabled}, Validators.required),
LinkingTolerance: new FormControl({value: settings.LinkingTolerance, disabled: !settings.Enabled}, Validators.required)
});
并检查 this. notelinkingForm.value,如果所有控件都被启用,那么输出将是:
{"Enabled":true, "LinkToPreceeding": true, LinkingTolerance:"100"}
但是,当一些控件被禁用时,它将是:
{"Enabled":true}
注意如何排除禁用的控件。
我的意图是,当表单发生变化时,我希望能够将 form.value 及其中的所有属性传递给我的其他 API。如果它不包含禁用的项目,这显然是不可能的。
我是漏掉了什么,还是这是预期的行为?有没有办法告诉 Angular 在 form.value 中包含禁用的项目?
欢迎你的想法。