$resource和$http都是用来处理http请求的,但是具体又有哪些区别呢?
$resource
var User = $resource('api/user/:userId');
User.get({userId:123}, function(data) {
...
});
$http
var req = {
method: 'GET',
url: 'http://example.com/api/user/:userId',
}
$http(req).then(function(data){
...
})
本质上功能都是一样的,都是基于XMLHttpRequest和服务器交互的服务。
不同的是$resource是对$http更高层次的抽象,$resource依赖于$http,也就是说$resource是在$http的基础上开发的。
基本上你可以把$http等同于jQuery的$.ajax,和$.ajax类似,$http除了有
$http
方法为,也有快捷方法$http.get
、$http.post
、$http.put
等快捷方法,还有$http(url)
返回的是一个Promise。$http通常用于和RESTful server-side交互,要求接口RESTful话,'$resource(url)'返回的不Promise,也是一个资源对象,你可以对一个资源对象进行get、query、save、delete等操作。
$resouce用法示例: