9

当我加载角度相关页面时,我在 IE-8 中面临以下异常。它在其他浏览器中运行良好。有什么具体原因吗?

SCRIPT5022: Argument 'module' is not a function, got undefined 
angular.js, line 975 character 5
4

4 回答 4

30

我遇到了同样的问题(在 IE < 9 上时),我花了很长时间才找到它......

angular.module('app', ['app.directives', 'app.filters', 'app.services', ]);

请注意“app.services”后面的逗号。

于 2013-04-18T01:33:54.640 回答
1

当我尝试内联结束脚本标记导致 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”的模块,但找不到它。可能是由于未加载的脚本。尝试找到一个关闭内联的脚本标签,并按照上面的描述结束它。

希望有帮助。

于 2013-03-24T13:49:11.200 回答
1

可能导致这种情况的另一件事是对对象属性使用关键字。我有三个模块出现上述错误:

statistic.import = !statistic.import;

default: $scope.newGrid.default

$scope.data = JSON.stringify({export: exportParams})

有问题的属性是importdefaultexport

于 2014-08-07T09:55:28.540 回答
0

我不知道您是否仍然遇到同样的问题,但我发现了一个可能的原因:

当您声明任何角度模块时,您必须注入一些依赖项,如下所示:

angular.module('MyStore', ['ng','ngRoute']);

如果您需要从另一个地方调用该模块来执行任何操作,如果您尝试再次注入依赖项,您可能会不匹配......那么您必须使用它的名称来调用它,如下所示:

angular.module('myStore')

否则你将利用你的大脑寻找解决方案。

我希望它有帮助!

于 2014-03-04T20:31:55.310 回答