【问题标题】:Why does Angular FormControl set 'disabled' in DOM but not 'required'?为什么 Angular FormControl 在 DOM 中设置为“禁用”而不是“必需”?
【发布时间】:2018-03-15 06:06:40
【问题描述】:

我已将表单逻辑从模板移到 FormGroup 和 FormControl 对象中。当我禁用 FormControl 时,Angular 还会更新 DOM 中字段的 disabled 属性。但是,当我更新控件的验证器以包含/排除 Validators.required 时,required 属性不会在 DOM 中更新。

只是想知道这是为什么?我需要这两个设置,否则 Angular Material 不会使用“*”为字段设置样式,告诉用户它是必需的。

【问题讨论】:

    标签: angular angular-material2 angular4-forms


    【解决方案1】:

    他们确实在他们的文档中提到了一个小花絮here

    我认为基本上,他们不需要让反应式表单工作。它独立于html。他们说“必需的属性仍然存在。虽然出于验证目的不需要它,但出于 CSS 样式或可访问性的原因,您可能希望将其保留在模板中。”

    我记得在某处看到他们计划最终让 Validators.required 反应配置也为您更新所需的 html 属性,但还没有编码。

    【讨论】:

    • 这听起来很合理,但对于disabled 属性来说,这不也是正确的吗(验证不是必需的)?所以这很简单:他们已经为disabled 实现了,但还没有到required...
    • 我敢打赌,禁用对实施来说更为重要。我认为他们可能正在使用 html/浏览器功能来防止有人单击禁用的按钮。另一方面,他们肯定没有使用 html5 验证。他们正在使用 javascript 代码来检查该字段是否有条目。所以也许这就是为什么他们可以推迟必需但不能禁用
    猜你喜欢
    • 2014-06-02
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多