首页 文章

将表单状态对象中的'disabled'传递给FormControl构造函数不起作用

提问于
浏览
2

我们之前见过这个:

看起来您正在使用带有反应式表单指令的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() . 我不希望这样做,但将'form state object'中的 disabled 传递给构造函数不起作用 . 为什么不?

这是我的代码:

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

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

1 回答

  • 3

    实际上,它不起作用的原因是我在表单状态对象中没有“值” . 应该是:

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

相关问题