Making a web request is an essential part of most JavaScript applications. AngularJS makes it very easy for us to make these requests, using the $http service, provided out of the box. Lets set up our base AngularJS application:
(function(){
var app = angular.module('ExampleHttpRequest', []);
})();
Now lets add an Angular factory, to provide the rest of our application access to the web service (http endpoint):
(function(){
var app = angular.module('ExampleHttpRequest', []);
// webService factory to make $http calls
app.factory('webService', ['$http', function($http){
var url = 'http://example.webservice.com/api';
return {
get: function(){
return $http.get(url);
},
update: function(data_object){
return $http.post(url, data_object)
}
}
}]);
})();
Now that we have our factory, we can create a controller to access the factory return functions. From there we will be able to use the returned data in our view:
(function(){
var app = angular.module('ExampleHttpRequest', []);
// webService factory to make $http calls
app.factory('webService', ['$http', function($http){
var url = 'http://example.webservice.com/api';
return {
get: function(){
return $http.get(url);
},
update: function(){
return $http.post(url)
}
}
}]);
// Controller to call webService data to view
app.controller('ExampleController', ['webService', '$scope', function(webService, $scope){
// Notice the 'webService' injection,
// this is how we use the factory within this controller.
$scope.returnedData; // Binds data to scope
// Get request function bound to view
$scope.getData = function(){
webService.get()
.success(function(response){
$scope.returnedData = response;
})
.error(function(error){
// Handle error here
})
};
// POST request function bound to view
$scope.updateData = function(name, email){
// Data object to POST
var payload = {
name: name,
email, email
};
// Calling the update method, and passing the payload
webService.update(payload)
.success(function(response){
console.log(response);
})
.error(function(error){
// Handle error here
})
};
}]);
})();
Thanks for reading!