我正在尝试用自定义$ http-GET覆盖AngularJS $资源的query()方法。但是,它似乎没有覆盖操作的结果。它返回的对象包含method
,data
和headers
,而不是data.rows[]
。
angular.module('couchdb', ['ngResource']).
factory('Project', function($resource, $http) {
var Project = $resource('http://couchdb/mydb', {}, {
'update': { method: 'PUT' },
'query': {method:'GET', isArray: false}
}
);
Project.query = function() {
return $http({method: 'GET', url: 'http://couchdb/mydb/_design/projects/_view/index'}).
success(function(data, status, headers, config) {
return data.rows;
}).
error(function(data, status, headers, config) {
$scope.data = data || "Request failed";
$scope.status = status;
});
};
return Project;
});
我怎样才能获取资源的结果行?
答案 0 :(得分:0)
ngResource
不需要依赖$http
服务。您无需重新定义Project.query
函数 - 因为您已将其指定为Project
$resource
的操作(除了默认情况下包含它)。< / p>
这意味着Project.query
函数已准备就绪,不需要重新定义。您可以直接执行Project.query()
来获得结果。它支持成功/失败的回调,因此Project.query({}, successCallback, failureCallback)
将不提交任何参数,并允许您访问返回的数据。
我建议你仔细阅读AngularJS $resource documentation,因为它们提供了很多很好的例子。 Step 11 of the Angular Tutorial中还包含一个基本示例。