我想将此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;
}]);
知道为什么会这样吗?如何解决?
答案 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>