2013-04-28 20 views
15

Tôi muốn quấn số này https://gist.github.com/nblumoe/3052052 trong mô-đun. Tôi vừa thay đổi mã từ TokenHandler thành UserHandler, bởi vì trên mỗi yêu cầu api tôi muốn gửi ID người dùng.Mô-đun không được tìm thấy trong angularjs

Tuy nhiên, tôi không tìm thấy UserHandler mô-đun trong bảng điều khiển firebug. Đây là mã đầy đủ của tôi: http://dpaste.com/1076408/

Phần có liên quan:

angular.module('UserHandler').factory('UserHandler', function() { 
    var userHandler = {}; 
    var user = 0; 

    /... 

    return userHandler; 
}); 

angular.module('TicketService', ['ngResource', 'UserHandler']) 
     .factory('Ticket', ['$resource', 'UserHandler', 
       function($resource, userHandler){ 

    var Ticket = $resource('/api/tickets/:id1/:action/:id2', 
    { 
     id1:'@id' 
    }, 

    { 
     list: { 
      method: 'GET' 
     } 
    }); 

    Ticket = userHandler.wrapActions(Ticket, ["open", "close"]); 

    return Ticket; 
}]); 

Bất cứ ý tưởng tại sao điều này xảy ra? Làm thế nào để sửa chữa nó?

Trả lời

39

Nhiều người đã rơi vào cùng một cái bẫy. Tôi đã bao gồm.

Phần sau không xác định mô-đun mới. Nó sẽ cố gắng truy xuất một mô-đun có tên là UserHandler chưa được xác định.

angular.module('UserHandler') 

Cung cấp mảng (trống) phụ thuộc làm đối số thứ hai sẽ xác định mô-đun của bạn.

angular.module('UserHandler', []) 
+0

Thật tuyệt vời khi góc cạnh của bạn: bộ điều khiển tạo ra thứ gì đó không hoạt động! – mstreffo

+0

@mstreffo Giải thích ... – Bart

+1

Tôi sử dụng yo để tạo mẫu góc (xem https://github.com/yeoman/generator-angular) và điều này tạo ra một bộ điều khiển như thế này: angular.module ('clientApp') .controller ('MycontrollerCtrl', hàm ($ scope) {...}) không hoạt động. Tôi cần thêm [] vào angular.module() để nó hoạt động. – mstreffo

2

Tôi mới dùng javascript và đã dành một vài giờ để khám phá vấn đề của mình. Chức năng khởi tạo mô-đun có thể bỏ qua. Để tránh điều này, đừng quên thêm dấu ngoặc đơn trống vào cuối hàm:

(function() { 
    "use strict"; 
    var app = angular.module("app", []); 
    })(); //<<---Here 
Các vấn đề liên quan