Angular 6.x not working in IE 11 - Error: Invalid argument

Angular 6.x not working in IE 11 - Error: Invalid argument

我有一个 Angular 6.x 应用 运行 非常适合 Chrome。问题是在 IE 11 中尝试 运行 时,出现错误:

Error: Invalid argument. at DefaultDomRenderer2.prototype.setProperty...

我已经尝试了 Whosebug 中我无法找到的所有答案。我在这里列出主题,这样你们就不会尝试将它们作为答案:

感谢您的帮助。

我已经找到问题并解决了。我写这个答案是为了为其他面临这个问题的人节省时间。

问题 不正确的 值变量绑定到 HTML attribute(任何 HTML 属性)。

例如

将变量分配给 p 标记中的 dir 属性,必须 定义为可能的值之一对于 dir 属性,它们是:ltr | rtl | auto

在 html 中有此行​​:<p [dir]="myDir">Test</p>

myDir = undefinedmyDir = 'bla bla bla' 或任何其他不正确的值时 - 我们将得到一个错误

myDir = 'rtl' 或任何其他正确值时 - 我们 不会 得到错误。

在 IE 中添加了 DEMO 到 运行 以查看重现的错误。

结论 我想我们可以说,当绑定到 HTML 属性时,我们必须非常小心地获得有效的属性值,这样我们不会遇到这个问题。

我在使用时也出现了这个错误:

const input = {
   time: 'time',
   date: 'date'
}

<input [type]="input.date"/>
<input [type]="input.time"/>

IE 11 输入不支持日期和时间类型。所以 IE 不支持的任何元素都可能会抛出相同的错误。