$http
thực hiện cuộc gọi AJAX cho mục đích chung, trong đó chung có nghĩa là nó có thể bao gồm api RESTful cộng với api không RESTful .
và $resource
là chuyên ngành cho phần RESTful đó .
Api yên tĩnh đã trở nên thịnh hành trong những năm gần đây vì url được tổ chức tốt hơn thay vì url ngẫu nhiên được tạo bởi các lập trình viên.
Nếu tôi sử dụng API RESTful để tạo url, nó sẽ giống như thế /api/cars/:carId
.
$resource
cách để lấy dữ liệu
angular.module('myApp', ['ngResource'])
// Service
.factory('FooService', ['$resource', function($resource) {
return $resource('/api/cars/:carId')
}]);
// Controller
.controller('MainController', ['FooService', function(FooService){
var self = this;
self.cars = FooService.query();
self.myCar = FooService.get('123');
}]);
Điều này sẽ cung cấp cho bạn một đối tượng tài nguyên , mà được đi kèm với get
, save
, query
, remove
, delete
phương pháp tự động.
$http
cách để lấy dữ liệu
angular.module('myApp', [])
// Service
.factory('FooService', ['$http', function($http){
return {
query: function(){
return $http.get('/api/cars');
},
get: function(){
return $http.get('/api/cars/123');
}
// etc...
}
Xem cách chúng tôi cần xác định từng thao tác phổ biến trên API RESTFul . Ngoài ra một sự khác biệt là $http
trả về promise
trong khi $resource
trả về một đối tượng. Ngoài ra còn có các plugin của bên thứ ba để giúp Angular đối phó với API RESTFul như restangular
Nếu API là một cái gì đó như /api/getcarsinfo
. Tất cả còn lại cho chúng tôi là để sử dụng $http
.