动态禁用控件时显示警告消息angular2

时间:2016-11-17 07:31:59

标签: angular disabled-control

我想禁用页面加载中的所有控件,并在用户单击“反应”窗体中的“添加”按钮时启用所有控件。所以为了实现这一点,我在html模板中使用了[disabled]属性,但是我在控制台中收到了以下警告消息。

  

警告

     

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

  Example: 


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

请帮我解决如何避免此警告信息并达到我的要求。

1 个答案:

答案 0 :(得分:0)

@GünterZöchbauer是正确的,警告说您应该在创建时以编程方式启用/禁用控件,如示例中所示,或者通过函数.disable(),然后使用.enable()函数启用控制或在它将传播的顶层(除非你指定为假)。

如果您绑定到“活动表单”中的[disabled],则行为可能无法按预期运行。

来自AbstractControl文档:

  

disable({onlySelf,emitEvent}?:{onlySelf?:boolean,emitEvent?:   boolean}):void禁用控件。这意味着控制权将是   免除验证检查并从总值中排除   任何父母。它的状态是DISABLED。

     

如果控件有孩子,所有孩子都将被禁用以维持   模特。

     

enable({onlySelf,emitEvent}?:{onlySelf?:boolean,emitEvent?:   boolean}):void启用控件。这意味着控制权将是   包含在验证检查中以及其父级的总值。   其状态根据其值和验证器重新计算。

     

如果控件有子项,则将启用所有子项。