2013-08-17 45 views
9

在我的应用我这样做:角度错误的原因:“错误:没有模块:ngCookies”?

angular.module('myApp.controllers', ['ngCookies']). 
    controller('AppCtrl', function ($scope, socket, $cookies) { 
     console.log("socket:"); 
     console.log(socket); 
     $scope.component = 'main'; 
     gLoggedIn = "no"; 
     gUserName = ""; 
     console.log("reset logged in status"); 
     sid = $cookies; 
     $scope.setComponent = function(val) { 
      $scope.component = val; 
     } 
    }). 

但我不断收到错误:

TypeError: 'undefined' is not an object (evaluating 'angular.module')" and "Error: No module: ngCookies

很明显,我在模块中加载[ 'ngCookies']在这里!而且更重要的是,我做了一个凉亭安装角,角饼干,角型装载机,并添加这个我index.jade:

script(src='bower_components/angular-cookies/angular-cookies.js') 
script(src='bower_components/angular/angular.js') 
script(src='bower_components/angular-loader/angular-loader.js') 

那么是什么原因?

我试着在各个地方添加['ngCookies']无济于事:app.js,nope; services.js,nope;那么问题是什么?

回答

17

在加载angular.js之前,您正在加载angular-cookie。像这样重新排列:

script(src='bower_components/angular/angular.js') 
script(src='bower_components/angular-cookies/angular-cookies.js') 
script(src='bower_components/angular-loader/angular-loader.js') 

我认为这将解决您的问题。

+0

哈哈oooookay。你是对的。这就是我从Objective C到JavaScript所得到的结果。订单很重要....?! Weiiiird。 – CommaToast

+0

是的,JavaScript中的顺序更重要,lol – BKM

+1

JavaScript是一种解释型语言,Objective-C是一种编译语言,这就是为什么加载代码文件顺序很重要的原因。 – stefann

14

我有完全相同的失败,但与yeoman angular generator创建一个全新的项目。我用grunt test命令得到了错误,并且我意识到问题在于karma.conf.js不加载角度cookie(角度资源和角度消毒)相关性。所以我将它们添加到该文件的文件数组中。

files: [ 
    'app/bower_components/angular/angular.js', 
    'app/bower_components/angular-cookies/angular-cookies.js', 
    'app/bower_components/angular-resource/angular-resource.js', 
    'app/bower_components/angular-sanitize/angular-sanitize.js', 
    'app/bower_components/angular-mocks/angular-mocks.js', 
    'app/scripts/*.js', 
    'app/scripts/**/*.js', 
    'test/mock/**/*.js', 
    'test/spec/**/*.js' 
], 

它的工作原理!

我希望这对yeoman用户有用!

+0

感谢我的朋友! – connorbode