AngularJS 1.5.0不兼容IE11,$injector:modulerr错误

问题:

使用AngularJS 1.5.0的网页在Chrome浏览器运行正常,但在IE11浏览器无法正常显示,错误信息如下:

[$injector:modulerr] http://errors.angularjs.org/1.5.0-rc.0/$injector/modulerr?p0=PAPIGW&p1=%5B%24injector%3Anomod%5D%20http%3A%2F%2Ferrors.angularjs.org%2F1.5.0-rc.0%2F%24injector%2Fnomod%3Fp0%3DPAPIGW

IE debugger调试下显示:
这里写图片描述

解决方法:

尝试方法一(无效):
AugularJS官方文档建议
1.使用ng-style标签而不是style=“{{SOMECS}}”
2.对于buttons的type属性,使用ng-attr-type而不是type =“{{someExpression } }”。如果使用后者,则在AngularJS有机会插入表达式之前,Internet Explorer用type=”submit”覆盖表达式。
3.对于progress的value属性,使用ng-attr-type标签而不是value =“{{someExpression } }”。如果使用后者,Internet Explorer会在ValueJS有机会对其进行插值之前重写具有值=“0”的表达式。
4.对于textarea的placeholder属性,使用ng-attr-placeholder标签代替placeholder=”{{ someExpression }}”。如果使用后者,Internet Explorer将在访问Internet Explorer 10&11中无父文本节点TextNode上的nodeValue时出错(参见问题5025)。
5.在具有后代表单控件的元素上使用disabled属性可能会导致Internet Explorer 11中的意外行为。例如,带有ng-model的后代输入元素的值将不反映模型(或对模型的更改),并且placeholder属性的值将被插入作为输入的值。后代选择元素也将无法操作,就好像它们具有应用到它们的disabled属性,这可能不是预期的效果。要解决此意外行为,1)避免对具有后代表单控件的元素上的自定义属性指令使用disabled的标识符,2)避免将disabled用作传递给具有后代表单控件的自定义指令的属性的标识符。

尝试方法二(无效):
<head>标签里加入<meta http-equiv="X-UA-Compatible" content="IE=11" />

尝试方法三(正解):
stackoverflow的这篇文章解决了我的问题。原因:IE11的缓存问题和本身项目的依赖关系问题。所以把头部加载项文件的按照依赖关系的顺序加载就解决了问题!

猜你喜欢

转载自blog.csdn.net/xiaomei1xiake2/article/details/82351783
今日推荐