我正在使用$resource
从服务器获取一个工作正常的json:
topicServices.factory('Topic', ['$resource',
function($resource){
return $resource('http://localhost/topic_api_response.json', {}, {
fetchData: {method:'GET', isArray:true}
});
}]);
但是,现在我想通过执行以下操作将此工厂转换为服务:
topicServices.service('Topic', ['$resource',
function($resource) {
this.fetchData = function() {
var resp = $resource('http://localhost/topic_api_response.json');
return resp;
};
}]);
这样做,我无法确定在何处指定请求方法(GET/POST
)以及在哪里提供GET/POST
参数
答案 0 :(得分:2)
按照“服务”定义的方式,你应该阅读Angular Docs。
无论如何,你要怎么做:你已经将fetchData作为一种方法分离出来,这似乎达到了一个http GET。因此,您可以按如下方式编写代码。
topicServices.service('Topic', ['$http',
function($http) {
this.fetchData = function() {
var resp = $http.get('http://localhost/topic_api_response.json');
return resp;
};
}]);
如果你想使用$ resource,请按如下所示进行包装:
topicServices.service('Topic', ['$resource',
function($resource) {
this.myResource = function() {
var resp = $resource('http://localhost/topic_api_response.json',params,{fetchData:{}});
return resp;
};
}]);