通过'禁用'在窗体状态对象FormControl构造函数不起作用

时间:2018-03-09 18:46:08

标签: angular

我们之前见过这个:

  

您似乎正在使用带有被动形式的disabled属性   指示。如果将disabled设置为true         当您在组件类中设置此控件时,实际上将在DOM中设置disabled属性         您。我们建议使用这种方法,以避免在检查后更改'错误。

使用警告输出的示例:

  form = new FormGroup({
    first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),
    last: new FormControl('Drew', Validators.required)
  });

但是,当我尝试按照它所说的那样做时,它并不起作用。所以我在SO上搜索问题,我发现了许多问题,例如this,但他们都说要手动调用FormControl.disable()。我不希望这样做,而是将disabled传递到“状态”对象'构造函数不起作用。为什么不呢?

这是我的代码:

this.registerForm('someName', {
  firstName: new FormControl({disabled: true}),
});

这不是this question的重复,因为我问的是为什么应该,没有额外的函数调用或者向模板添加内容时,某些内容无法正常工作。而我通过我的回答发现的非常关键,可能是对Angular设计的疏忽。

1 个答案:

答案 0 :(得分:5)

实际上,它不起作用的原因是我在表单状态对象中没有'value'。应该是:

this.registerForm('someName', {
  firstName: new FormControl({value: '', disabled: true}),
});