Créer un Service Angular AJAX.

Introduction :


Pour clarifier le code et le rendre plus performant, on regroupe les fonctionnalités génériques d’une application WEB Angular dans des services.

Les services sont des « portions de codes » à visée générique.

Du coup, ses services sont ré-utilisables d’une application à un autre, et on peut même récupérer les services d’un autre développeur.

Par exemple, on peut créer un service qui gère tous les appels AJAX(Crud), du coup notre code Angular est plus facile à comprendre par les autres développeurs.Autrement dit, ce service s’occupera de toutes les actions de type « Lecture, Enregistrement,Mise à jour, suppression » des données dans une application WEB Angular. C’est un peu le concept d’une classe UML.

Comment faire?


Lire cet explication bien claire en Anglais:

  • http://www.benlesh.com/2013/02/angularjs-creating-service-with-http.html

Donc, on crée d’abord le service(Enfin là, c’est une factory, qui retourne un objet) comme ceci :

app.factory('monService', function($http) {
   return {
     getEtudiants: function(callback) {
       $http.get('Etudiants.json').success(callback);
     }
   }
});

Le code précédent contient une fonction qui lit un fichier JSON, et récupère les données du fichier JSON dans la variable data, dans le callback.

puis on y fait référence dans notre controlleur comme cela :


app.controller('MainCtrl', function($scope, monService) {
  monService.getEtudiants(function(data) {
     $scope.Etudiants = data;
  });
});

Le code précédent est un controleur, dans ce controleur, j’appelle le service de lecture du fichier au format json grâce à l’instruction monService.getEtudiants. Le service nous retourne le fichier json dans la variable « DATA », on peut donc exploiter les données de ce fichier directement dans notre controleur.

Pour un fonctionnement plus global de CRUD(Create, read, update, delete) ou ( Créer, Lire,Mettre à jour,supprimer), voir ce lien http://www.bennadel.com/blog/2612-using-the-http-service-in-angularjs-to-make-ajax-requests.htm ou il a créé un service qui fait tout cela à la fois, avec des appels AJAX.

Publicités