Angular2 [disabled] =“ function()”在IE中不起作用

时间:2018-07-31 17:31:25

标签: angular internet-explorer reactive-forms

在Angular2应用程序中,只有在满足多个条件的情况下,提交按钮才启用。我为此使用[disabled]="disabled(j)"

html:

<button type="submit" class="submit" [disabled]="disabled(j)">Submit</button>

组件:

disabled(j) {
   if (this.form.valid && j === this.userId) {
    return false;
   } else {
    return true;
   }     
}

它在Chrome中完美运行,但在IE中不起作用。检查DOM元素显示,它有[disabled]="disabled(j)"而不是[disabled]=""

该如何解决?

3 个答案:

答案 0 :(得分:0)

作为解决方法,您可以直接将条件直接添加到[disabled]属性

<button type="submit" class="submit" [disabled]="!(form.valid && j === userId)">Submit</button>

答案 1 :(得分:0)

最可能的问题是用于表单验证的polyfill(使用HTML5和ES6标准),而不是输入指令中的函数。更具体地说,该项目可能是罪魁祸首:this.form.valid

了解如何添加polyfill,以及需要哪些额外的软件包:https://angular.io/guide/browser-support

注意:IE在大多数应用程序中都被视为不推荐使用的浏览器,因此应避免完全支持(特别是对于版本<10)。对于10/11,仍需要使用ES6填充胶。

答案 2 :(得分:0)

这可能与polyfills有关,因为您正在使用IE,因此可能必须手动更新它们。看到这里:Angular 2 / 4 / 5 not working in IE11