服务返回资源。可能吗?

时间:2014-04-10 15:00:57

标签: angularjs service resources

我正在尝试一个服务,返回多个资源注入控制器,但是调用资源"查询"方法我得到一个方法不存在的错误。下面将找到我想要做的代码示例。我在控制器端进行方法调用,因为在承诺成功时还有其他逻辑。有没有办法做到这一点?

//服务

ImageRepo.factory('ServerCall', ['$resource', function ($resource) {
return {
    Image: function () {
        return $resource('/api/image/:id', { id: '@id'});
    },
    Meta: function () {
        return $resource('/api/metadata/:id', { id: '@id'});
    }
}
}]);

//控制器功能

var ImageCtrl = function ($scope, ServerCall) {
...
$scope.metadefsearch = function () {
    ServerCall.Meta.query().$promise.then(function (metasdef) {
        $scope.metasdefinition = metasdef;
       //Some additional logic.....
    });
  };
};

2 个答案:

答案 0 :(得分:0)

MetaImage成为对象而不是函数:

ImageRepo.factory('ServerCall', ['$resource', function ($resource) {
  return {
    Image: $resource('/api/image/:id', { id: '@id'});,
    Meta: $resource('/api/metadata/:id', { id: '@id'}) 
  }; 
}]);

答案 1 :(得分:0)

由于你的两个属性是方法,你应该这样做:

ServerCall.Meta().query().$promise.then(function (metasdef) {