$http
führt einen Allzweck-AJAX-Aufruf durch, wobei allgemein bedeutet, dass er RESTful- API und Non-RESTful- API enthalten kann.
und $resource
ist auf diesen RESTful- Teil spezialisiert.
Restful Api hat sich in den letzten Jahren durchgesetzt, weil die URL besser organisiert ist als die zufällige URL, die von Programmierern erstellt wurde.
Wenn ich eine RESTful-API verwende , um die URL zu erstellen, wäre das ungefähr so /api/cars/:carId
.
$resource
Weg, um Daten abzurufen
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');
}]);
Dies wird Ihnen ein Ressourcenobjekt , das mit einhergeht get
, save
, query
, remove
, delete
automatisch Methoden.
$http
Weg, um Daten abzurufen
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...
}
Sehen Sie, wie wir jede allgemeine Operation in der RESTFul-API definieren müssen . Auch ein Unterschied ist , dass die $http
Renditen , promise
während $resource
ein Objekt zurückgegeben. Es gibt auch Drittanbieter - Plug - ins Eckige Deal mit helfen RESTful API wie restangular
Wenn die API so etwas wie ist /api/getcarsinfo
. Alles was für uns übrig bleibt ist zu benutzen $http
.