2013-08-17 29 views
9

Trong ứng dụng của tôi, tôi đang làm điều này:Nguyên nhân gây ra lỗi góc: "Lỗi: Không có module: 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; 
     } 
    }). 

Nhưng tôi tiếp tục nhận được lỗi:

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

Rõ ràng là tôi nạp [ 'ngCookies'] đây trong module! Và những gì hơn nữa, tôi đã cài đặt bẻ góc, angular-cookies, và angular-loader, và thêm nó vào index.jade của tôi:

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') 

Vì vậy, cái gì?

Tôi đã thử thêm ['ngCookies'] ở những nơi khác nhau để không có lịch phát sóng: app.js, nope; services.js, nope; Vì vậy, vấn đề là gì?

Trả lời

17

Bạn đang tải cookie góc trước khi tải angular.js. Sắp xếp lại như sau:

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') 

Tôi nghĩ điều này sẽ giải quyết được vấn đề của bạn.

+0

Hahah oooookay. Bạn đúng. Đây là những gì tôi nhận được từ mục tiêu C đến JavaScript. Thứ tự quan trọng ....?! Weiiiird. – CommaToast

+0

Có thứ tự quan trọng hơn nhiều trong JavaScript, lol – BKM

+1

JavaScript là một ngôn ngữ thông dịch so với Objective-C, là ngôn ngữ được biên dịch và đó là lý do tại sao việc tải các tệp mã quan trọng. – stefann

14

Tôi đã thất bại chính xác như vậy nhưng với một thương hiệu mới được tạo ra với yeoman angular generator. Tôi đã nhận được lỗi với lệnh kiểm tra grunt và tôi nhận ra rằng vấn đề là karma.conf.js không tải các cookie-angular (hoặc là các tài nguyên góc và angit-sanitize) phụ thuộc. Vì vậy, tôi đã thêm chúng vào mảng tệp của tệp này.

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' 
], 

Và nó hoạt động!

Tôi hy vọng nó hữu ích cho người dùng yeoman!

+0

cảm ơn bạn tôi! – connorbode

Các vấn đề liên quan