我正在尝试一个服务,返回多个资源注入控制器,但是调用资源"查询"方法我得到一个方法不存在的错误。下面将找到我想要做的代码示例。我在控制器端进行方法调用,因为在承诺成功时还有其他逻辑。有没有办法做到这一点?
//服务
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.....
});
};
};
答案 0 :(得分:0)
让Meta
和Image
成为对象而不是函数:
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) {