我在加载角度相关页面时遇到了IE8以下的异常。它在其他浏览器中工作正常。任何具体原因?SCRIPT5022:参数'模块'不是一个函数,得到undefined angular.js,行975个字符5
SCRIPT5022: Argument 'module' is not a function, got undefined
angular.js, line 975 character 5
我在加载角度相关页面时遇到了IE8以下的异常。它在其他浏览器中工作正常。任何具体原因?SCRIPT5022:参数'模块'不是一个函数,得到undefined angular.js,行975个字符5
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 <9不支持尾随逗号(以及令人难以置信)非常有帮助。我通常在任何地方都使用它们,因为它使添加项目变得更容易 – rintaun 2013-05-03 14:30:13
谢谢! IE8就是这样的笑话!尽管如此多的客户仍在使用它! – Jmorvan 2014-12-09 09:41:10
感谢我,这是一个领先的逗号:'[,'app.directives','app.filters','app.services']' – pulkitsinghal 2015-04-30 05:09:02
当我尝试内联结束脚本标记导致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试图找到你的模块叫'模块',但无法找到它。可能是由于未加载脚本。尝试找到一个内联关闭的脚本标记,并按照上面的描述结束它。
希望有所帮助。
我不知道你是否仍然存在同样的问题走,但我发现了一个可能的原因:
在声明任何角度模块,必须注入的依赖性一些这样的:
angular.module('MyStore', ['ng','ngRoute']);
如果需要调用该模块从其他地方来执行,如果你试图再次注入的依赖,你可能不匹配的任何行动......那么你必须通过它的名字这样称呼它:
angular.module('myStore')
否则你会利用你的大脑寻找解决方案。
我希望它有帮助!
可能导致此问题的另一件事是使用对象属性的关键字。我有三个模块与上述错误:
statistic.import = !statistic.import;
default: $scope.newGrid.default
$scope.data = JSON.stringify({export: exportParams})
违规的性质是进口,默认和出口。
提供一些代码。 – Stewie 2013-03-18 14:20:09