在angularjs中找不到模块

时间:2013-04-28 07:12:57

标签: angularjs angularjs-module

我想将此https://gist.github.com/nblumoe/3052052包装在一个模块中。我刚刚将代码从TokenHandler更改为UserHandler,因为在每个api请求中我都想发送用户ID。

但是我在firebug控制台中找不到模块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;
}]); 

知道为什么会这样吗?如何解决?

3 个答案:

答案 0 :(得分:40)

许多人陷入了同样的陷阱。我包括在内。

以下内容未定义新模块。它将尝试检索尚未定义的名为UserHandler的模块。

angular.module('UserHandler')

提供(空)依赖关系数组作为第二个参数将定义您的模块。

angular.module('UserHandler', [])

答案 1 :(得分:2)

我是javascript的新手,花了几个小时才发现我的问题。模块初始化函数可以忽略。为避免这种情况,请不要忘记在函数末尾添加空括号:

var counter = 0;
for (var i = 0; i < playerCards.length; ++i) {

    counter += i;
}

答案 2 :(得分:0)

此外,不要忘记在您的index.html中添加新模块:

<script src="app/auxiliary/test.module.js"></script>
<script src="app/auxiliary/test.route.js"></script>
<script src="app/auxiliary/test.controller.js"></script>