2016-10-13 1 views
0

J'utilise les opérations $http d'Angular pour les opérations get, post, put et delete. En ce moment j'ai écrit ce code dans mon contrôleur angulaire.Séparer les appels de données en usine dans Angular js

- Maintenant -

Je veux utiliser $resource au lieu de $http et que vous souhaitez placer ces appels de données dans une usine. Après la recherche sur tant de sites que j'ai trouvé ceci:

"use strict"; 
    angular.module("app") 
     .factory('someFactoryName', function ($resource) { 
      return $resource('/foo/bar/:id', { id: '@_id' }, { 
       update: { 
        method: 'PUT' // this method issues a PUT request 
       } 
      }); 
     }) 

Maintenant, je peux utiliser cette usine dans mon contrôleur comme ceci:

$scope.entry = new someFactoryName(); 
$scope.entry.$save(function (response) { 
    //some code 
}); 

Jusqu'à ici tout va bien.

- Maintenant, ce que je veux réaliser -

J'ai vu John Papa Angular1 Style guide et j'ai trouvé section this, le code qu'il a montré est très bien que je veux obtenir la même chose que je veux dire qu'il a appelé l'appel ajax et géré la réponse dans l'usine séparée, mais ici mon cas est peu différent. Mon seul défi est qu'il a utilisé $http et je veux utiliser $resource mais pour $resource j'ai déjà une usine alors comment puis-je écrire le code de gestion de réponse dans la même usine dans laquelle $resource est configuré. J'ai 2 idées à l'esprit:

  1. Je peux définir une usine et plus peut injecter cette usine dans une nouvelle,
  2. écrivent le code D'une certaine façon dans cette même usine

    Je ne sais pas quelle on est le meilleur et comment y parvenir, si vous avez une idée s'il vous plaît aider. Merci.

+0

Si l'utilisation de $ resource n'est pas une option, je vous recommande vivement de jeter un oeil sur https://github.com/mgonto/restangular. Il est beaucoup plus flexible que $ ressource et est très simple pour réaliser ce dont vous avez besoin dans ** une ** usine. –

Répondre