我的应用程序有以下$ resource调用。从我可以看到,这可以用$ http替换。
$resource('/api/:et/', { et: $scope.data.entityType })
.save(data, newSuccess, error)
.$promise.finally(last);
$resource('/api/:et/:id', { et: $scope.data.entityType })
.delete({ id: entityId }, deleteSuccess, error)
.$promise.finally(last);
$resource('/api/:et/:id', { et: $scope.data.entityType }, { update: { method: 'PUT' } })
.update({ id: entityId }, data, editSuccess, error)
.$promise.finally(last);
我检查了$ http文档,但是我看不到如何添加对xxxSuccess的调用,错误函数以及如何执行。$ promise.finally(last)。
有人可以解释我如何使用$ http复制此功能吗?
答案 0 :(得分:1)
$http
用于通用AJAX
。在大多数情况下,这就是您正在使用的内容。使用$http
,您将GET
,POST
,DELETE
手动键入调用并处理他们自己返回的对象。
$resource
包装$http
以用于RESTful Web API方案。
<强>语法强>
$http({
method : 'GET',
url : '/someUrl',
param : { paramKey : paramValue}, // optional
headers : 'someHeaders' // optional
}).success(function(data, status, headers, config)
{
// this callback will be called asynchronously
// when the response is available
}).error(function(data, status, headers, config)
{
// called asynchronously if an error occurs
// or server returns response with an error status.
});
$ http文档 - https://docs.angularjs.org/#!/api/ng/service/$http
在 $ http
中维护承诺app.factory('myService', function($http) {
var myService = {
async: function() {
// $http returns a promise, which has a then function, which also returns a promise
var promise = $http.get('/someUrl').then(function (response) {
// The then function here is an opportunity to modify the response
console.log(response);
// The return value gets picked up by the then in the controller.
return response.data;
});
// Return the promise to the controller
return promise;
}
};
return myService;
});
app.controller('MainCtrl', function( myService,$scope) {
// Call the async method and then do stuff with what is returned inside our own then function
myService.async().then(function(d) {
$scope.data = d;
});
});
看看这篇文章 Angular Promises ,这肯定会让你有助于实现这样的场景。
答案 1 :(得分:0)
$ resource是$ http的进一步抽象版本。如果您已经使用$ response,您可能会发现更改逻辑以使用$ http没有用。那说 -
https://docs.angularjs.org/api/ng/service/$http
一般用法 $ http服务是一个函数,它接受一个参数 - 一个配置对象 - 用于生成HTTP请求并返回一个带有两个$ http特定方法的promise:成功和错误。
$http({method: 'GET', url: '/someUrl'}).
success(function(data, status, headers, config) {
// this callback will be called asynchronously
// when the response is available
}).
error(function(data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});