多次调用相同的$ resource angularjs

时间:2014-06-20 13:40:33

标签: javascript angularjs

我有一个看起来像这样的工厂服务

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从两个调用中获取数据。

任何人都可以解释这种行为以及执行此操作的正确程序吗?

1 个答案:

答案 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;
         });