2014-04-16 11 views
14

ich ein Modul haben ...Mit einer Fabrik im Inneren einer anderen Fabrik AngularJS

angular.module('myModule', []); 

Und dann eine Fabrik

angular.module('myModule') 
.factory('factory1', [ 
    function() { 
    //some var's and functions 
} 
]); 

Und dann noch einer Fabrik

angular.module('myModule') 
.factory('factory2', [ 
    function() { 
    //some var's and functions BUT I want to use some var's from factory1 
} 
]); 

Aber ich will Verwenden Sie einige Variablen von factory1 in factory2, wie kann ich factory1 in factory2 injizieren? Diese

Antwort

18

ist, was ich tun würde:

auf Fabrik-One

angular.module('sampleApp') 
    .factory('factory1', function() { 
     var factory1 = {}; 

     factory1.method1 = function() { 
      return true; 
     }; 

     factory1.method2 = function() { 
      return "hello"; 
     }; 

     return factory1; 
    } 
); 

auf Fabrik Zwei

angular.module('sampleApp') 
    .factory('factory2', ['factory1', 
     function(factory1) { 

      var factory2 = {}; 

      factory2.method3 = function() { 
       return "bye vs " + factory1.method2(); 
      }; 

      return factory2; 
     } 
    ]); 
+4

Yep, [hier ist ein zupfen] (http://plnkr.co/edit/vscK9lLBhinBL9sYo65z?p=preview) –

+0

Dank @MohammadSepahvand schöne Ergänzung. – Dalorzo

+0

Ja, es ist großartig. Vielen Dank. – zhulinpinyu

1

Das ist, was ich tat und hat gut funktioniert. Rufen Sie SessionPresenters von Session

angular.module('tryme3App') 
    .factory('Session', function ($resource, DateUtils, SessionPresenters) { 
     return $resource('api/sessions/:id', {}, { 
      'query': { method: 'GET', isArray: true}, 
      'get': { 
       method: 'GET', 
       transformResponse: function (data) { 
        data = angular.fromJson(data); 

        var result = SessionPresenters.get({id: data.id}) 
        data.presenters = result; 
        return data; 
       } 
      }, 
      'update': { method:'PUT' } 
     }); 
    }).factory('SessionPresenters', function ($resource, DateUtils) { 
     return $resource('api/session.Presenters/:id', {}, { 
      'query': { method: 'GET', isArray: true}, 
      'get': { 
       method: 'GET', isArray: true 
      }, 
      'update': { method:'PUT' } 
     }); 
    }); 
Verwandte Themen