15

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

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

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

4

3 回答 3

40

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

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

angular.module('UserHandler')

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

angular.module('UserHandler', [])
于 2013-04-28T07:18:28.297 回答
2

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

(function() {
    "use strict";
    var app = angular.module("app", []);
    })(); //<<---Here
于 2015-07-19T03:54:46.860 回答
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>
于 2019-11-09T14:58:14.393 回答