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

Posted

技术标签:

【中文标题】动态禁用控件时显示警告消息 angular2【英文标题】:Warning message displaying while disabling controls dynamically angular2 【发布时间】:2017-03-31 15:36:44 【问题描述】:

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

警告

看起来您正在使用带有响应式表单的 disabled 属性。如果将 disabled 设置为 true 当您在组件类中设置此控件时,disabled 属性实际上将在 DOM 中设置为 你。我们建议使用这种方法来避免“检查后更改”错误。

  Example: 


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

请帮助我如何避免此警告消息并满足我的要求。

【问题讨论】:

警告不能说明一切吗?将模板驱动的表单与响应式表单混合使用通常不是一个好主意。 【参考方案1】:

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

如果您以反应形式绑定到[disabled],则行为可能无法按预期工作。

来自 AbstractControl 文档:

disable(onl​​ySelf, emitEvent?: onlySelf?: boolean, emitEvent?: boolean) : void 禁用控件。这意味着控制将是 免于验证检查并从总价值中排除 任何父母。其状态为 DISABLED。

如果控件有子控件,所有子控件都将被禁用以维护 模型。

enable(onl​​ySelf, emitEvent?: onlySelf?: boolean, emitEvent?: boolean) : void 启用控件。这意味着控制将是 包含在验证检查及其父项的合计值中。 它的状态是根据它的值和它的验证器重新计算的。

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

【讨论】:

以上是关于动态禁用控件时显示警告消息 angular2的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET,在回发时显示加载消息

C# wpf怎么在grid添加自定义控件时显示滚动条

如何在多个通知单击时显示适当的消息

禁用按钮时在悬停时显示工具提示

为啥 Xcode 在 appdelegate.h 文件中使用 AVAudioPlayer Delegate 协议时显示警告?

如何在颤振/飞镖扩展中禁用蓝色警告下划线标志?