Angular 5 FormControl 属性在禁用时没有 return 值

Angular 5 FormControl Attribute doesn't return values when disabled

我正在创建这样的响应式表单:

this.modelForm = new FormGroup({
  number: new FormControl({value: '', disabled: true}),
  otherValue1: new FormControl({value: '', disabled: false}),
  otherValue2: new FormControl({value: '', disabled: true}),
  detail: new FormArray([])
});

现在,当我尝试获取表单的当前值时,我只得到:

this.modelForm.value => 
Object: { otherValue1: '' , detail:[] }

返回的对象中省略了具有 "disabled:true" 属性的每个字段。

如何让它们通过该方法返回?

注意:我禁用了这些字段以获得与其他输入表单一致的视图。它看起来好多了,我认为一个字段不会对性能造成开销

这可能是由于 definition of forms by W3C(我预计 angular 具有与 "old HTML forms" 类似的方法)。禁用元素具有以下效果:

  • 禁用的控件不会获得焦点。
  • 在选项卡式导航中会跳过禁用的控件。
  • 禁用控件无法成功。
  • 禁用的控件不会提交数据。

这 "should" 由浏览器强制执行。您应该改用 angular 中的 Raw Values,这将忽略禁用状态。