当我加载角度相关页面时,我在 IE-8 中面临以下异常。它在其他浏览器中运行良好。有什么具体原因吗?
SCRIPT5022: Argument 'module' is not a function, got undefined
angular.js, line 975 character 5
当我加载角度相关页面时,我在 IE-8 中面临以下异常。它在其他浏览器中运行良好。有什么具体原因吗?
SCRIPT5022: Argument 'module' is not a function, got undefined
angular.js, line 975 character 5
我遇到了同样的问题(在 IE < 9 上时),我花了很长时间才找到它......
angular.module('app', ['app.directives', 'app.filters', 'app.services', ]);
请注意“app.services”后面的逗号。
当我尝试内联结束脚本标记导致 IE 无法加载我的所有脚本时,我会收到类似的错误。检查您是否有所有脚本包含的结束标签。
为了显示:
<script src="js/services.js"></script>
<script src="js/controllers.js"/> <!-- THIS IS A PROBLEM FOR IE -->
<script src="js/filters.js"></script>
<script src="js/directives.js"></script>
<script src="js/myApp.js"></script>
在 IE9 上,这将导致:
SCRIPT5022: No module: myApp.filters
angular.min.js, line 17 character 195
不完全一样,但我无法在 IE8 上测试它。然而,在 Chrome 上,这非常有效。关于这一点的奇怪之处,实际上是它似乎找不到的东西,是在带有内联结尾的脚本之后的脚本中。我真的无法解释。
现在,当我像这样关闭脚本标签时:
<script src="js/services.js"></script>
<script src="js/controllers.js"></script> <!-- THIS WORKS -->
<script src="js/filters.js"></script>
<script src="js/directives.js"></script>
<script src="js/myApp.js"></script>
它就像一个魅力。
总而言之,AngularJS 试图找到名为“module”的模块,但找不到它。可能是由于未加载的脚本。尝试找到一个关闭内联的脚本标签,并按照上面的描述结束它。
希望有帮助。
可能导致这种情况的另一件事是对对象属性使用关键字。我有三个模块出现上述错误:
statistic.import = !statistic.import;
default: $scope.newGrid.default
$scope.data = JSON.stringify({export: exportParams})
有问题的属性是import、default和export。
我不知道您是否仍然遇到同样的问题,但我发现了一个可能的原因:
当您声明任何角度模块时,您必须注入一些依赖项,如下所示:
angular.module('MyStore', ['ng','ngRoute']);
如果您需要从另一个地方调用该模块来执行任何操作,如果您尝试再次注入依赖项,您可能会不匹配......那么您必须使用它的名称来调用它,如下所示:
angular.module('myStore')
否则你将利用你的大脑寻找解决方案。
我希望它有帮助!