$httpthự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à $resourcelà 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, deletephươ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à $httptrả về promisetrong khi $resourcetrả 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.