【发布时间】:2017-03-02 01:55:28
【问题描述】:
我注意到,如果我禁用 Angular 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 中包含禁用的项目?
欢迎你的想法。
【问题讨论】: