Angular JS Uncaught Error:[$ injector:modulerr]

时间:2014-01-10 13:20:29

标签: javascript angularjs routes

我遇到一个问题,Angular JS收到错误:未捕获错误:[$ injector:modulerr]。 我的JS文件看起来

angular.module('MyApp', ['ngRoute']);
angular.module('MyApp',['ngResource']);
function TwitterCtrl($scope,$resource){
}

我还包括angular-route-js

 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js">     
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-route.min.js">

Angular文档说问题是http://docs.angularjs.org/api/ngRoute

15 个答案:

答案 0 :(得分:44)

尝试添加此内容:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-resource.min.js"></script>

答案 1 :(得分:37)

在开发中,我建议您使用而不是缩小的分发: 所有错误都会变得更加丰富! 而angular.min.js使用angular.js

lookup_mean <- function(i) {
  interval <- filter(daily_activity_pattern, interval == 0) %>% select(steps)
  return(interval$steps)
}

答案 2 :(得分:34)

尝试添加:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-resource.min.js">

angular.module('MyApp', ['ngRoute','ngResource']);
function TwitterCtrl($scope,$resource){
}

您应该只使用所有依赖项调用angular.module一次,因为使用当前代码,您将创建一个新的MyApp模块覆盖前一个模块。

来自angular documentation

  

请注意使用angular.module('myModule',[])将创建   模块myModule并覆盖任何名为myModule的现有模块。使用   angular.module('myModule')来检索现有模块。

答案 3 :(得分:12)

确保你的函数被封装在一个闭包中,并在最后加上extra():

(function(){                                                                     

    var app = angular.module('myApp', []);                                     


})();  

答案 4 :(得分:6)

我以前遇到过同样的问题,但我意识到我的主页(app.js)中没有包含“index.html”(主应用程序)。 因此,即使包含AngularJS所需的所有依赖项,您也可能在控制台中遇到该错误。因此,请始终确保在主页中包含必要的文件,否则您不应该遇到此问题。

希望这会有所帮助。

答案 5 :(得分:4)

问题是由于缺少ngRoute模块的包含引起的。从版本1.1.6开始,它是一个单独的部分:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js"></script>

var app = angular.module('myapp', ['ngRoute']);

这可以参考:AngularJS 1.2 $injector:modulerr David回答

答案 6 :(得分:4)

我收到此错误,因为我对另一个未加载的模块有依赖。

  

angular.module(&#34; app&#34;,[&#34; kendo.directives&#34;])。控制器(&#34; MyCtrl&#34;,function(){} ...... < / p>

所以即使我拥有所有Angular模块,我也没有剑道模块。

答案 7 :(得分:3)

确保保存angular.module的变量结构正确。

这将失败&#34;未捕获错误:[$ injector:modulerr]&#34;:

var angApp = angular.module("angApp");

这有效:

var angApp = angular.module("angApp", []);

它是一个偷偷摸摸的,因为错误信息并不特别指向一件事(因此答案种类繁多)。此外,大多数js linters不会抓住细节。坚持下去!

答案 8 :(得分:3)

我遇到了同样的问题。您应该在任何函数之外键入Angular js代码:

$( document ).ready(function() {});

答案 9 :(得分:2)

好的,如果你得到Uncaught Error: [$injector:modulerr]并且角度模块出现在告诉你的错误中,那么你有一个重复的ng-app模块。

答案 10 :(得分:2)

我遇到了完全相同的问题,解决了这个问题的方法是删除关闭:

$(function(){
    var app = angular.module("myApp", []); 
    app.controller('myController', function(){
        ...
    });
});

<强>变为:

var app = angular.module("myApp", []); 
app.controller('myController', function(){
    ...
});

答案 11 :(得分:1)

错误意味着依赖关系注入器无法找到依赖关系&n; ngResource&#39;。接受的答案中的脚本标记提供了这种依赖性。

如果您在依赖项中添加任何自定义模块但未添加脚本标记以包含&#39; .js&#39;您也会收到相同的错误。包含依赖项的文件。

答案 12 :(得分:1)

如果它有帮助就把这个放进去,我遇到了这个问题而且我的原因是因为当我捆绑我的Angular时我引用了主要的app文件作为&#34; AngularWebApp&#34;而不是&#34; AngularWebApp.js&#34;,希望这有帮助。

答案 13 :(得分:1)

我也有同样的问题,我刚从BundleConfig.cs文件中删除了以下代码行,我的代码工作正常。

BundleTable.EnableOptimizations = true;

答案 14 :(得分:0)

不要在cdn链​​接脚本标记内加载javascript。使用单独的脚本标记来加载AngularJs脚本。 我有同样的问题,但我创建了一个单独的<script> 然后错误就消失了。