2013-04-28 66 views
15

我想將此https://gist.github.com/nblumoe/3052052包裝在模塊中。我只是將TokenHandler中的代碼更改爲UserHandler,因爲在每個api請求上我都想發送用戶標識。未在angularjs中找到模塊

但是我得到的模塊UserHandler沒有在螢幕控制檯中找到。這裏是我的全碼:http://dpaste.com/1076408/

的培訓相關部分:

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; 
}]); 

任何想法,爲什麼出現這種情況?如何解決它?

回答

39

許多人陷入了同一陷阱。我包括在內。

以下不定義新模塊。它將嘗試檢索尚未定義的名爲UserHandler的模塊。

angular.module('UserHandler') 

提供一個(空)的依賴關係作爲第二個參數將定義你的模塊。

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

很好,yo angular:controller創建了一些不起作用的東西,然後! – mstreffo 2014-05-17 11:50:14

+0

@mstreffo解釋... – Bart 2014-05-17 15:57:52

+1

我使用喲生成角模板(請參閱https://github.com/yeoman/generator-angular),並創建如下控制器:angular.module('clientApp') .controller ('MycontrollerCtrl',函數($ scope){...})不起作用。我需要將[]添加到angular.module()才能使用。 – mstreffo 2014-05-17 19:38:43

2

我是JavaScript新手,並花了幾個小時來發現我的問題。模塊初始化功能可以忽略。爲避免這種情況,不要忘記在函數的末尾添加空括號:

(function() { 
    "use strict"; 
    var app = angular.module("app", []); 
    })(); //<<---Here