我有一个看起来像这样的工厂服务
app.factory('testService', ['$resource', function($resource){
var test = $resource('/a/:action/:id/:subaction',{
'getAll': {method: 'GET', params: {action: 'testAction'}}
}
return test;
}]);
我正在从我的控制器中调用此资源
test.getAll({}, callback1);
test.getAll({testParam: false}, callback2);
在这种情况下,callback1没有被触发,callback2从两个调用中获取数据。
任何人都可以解释这种行为以及执行此操作的正确程序吗?
答案 0 :(得分:0)
来自Angular示例:
var User = $resource('/user/:userId', {userId:'@id'});
User.get({userId:123}, function(user) {
user.abc = true;
user.$save();
});
var User = $resource('/user/:userId', {userId:'@id'});
User.get({userId:123}, function(u, getResponseHeaders){
u.abc = true;
u.$save(function(u, putResponseHeaders) {
//u => saved user object
//putResponseHeaders => $http header getter
});
});
值得注意的是,get,query和其他方法的成功回调在来自服务器的响应以及$ http header getter函数中传递,因此可以重写上面的示例并获取对http头的访问权限:
我认为你正在重写你的回调,但仍然提出要求......
尝试承诺:
var User = $resource('/user/:userId', {userId:'@id'});
User.get({userId:123})
.$promise.then(function(user) {
$scope.user = user;
});