我想禁用页面加载中的所有控件,并在用户单击“反应”窗体中的“添加”按钮时启用所有控件。所以为了实现这一点,我在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)
});
请帮我解决如何避免此警告信息并达到我的要求。
答案 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启用控件。这意味着控制权将是 包含在验证检查中以及其父级的总值。 其状态根据其值和验证器重新计算。
如果控件有子项,则将启用所有子项。