2014-04-16 21 views
14

Tôi có một mô-đun ...Sử dụng một nhà máy bên trong một nhà máy AngularJS

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

Và sau đó một nhà máy

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

Và sau đó một nhà máy

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

Nhưng tôi muốn sử dụng một số biến từ factory1 bên trong factory2, làm thế nào tôi có thể tiêm factory1 vào factory2?

Trả lời

18

Đây là những gì tôi sẽ làm:

On Factory Một

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

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

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

     return factory1; 
    } 
); 

On Factory Hai

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

      var factory2 = {}; 

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

      return factory2; 
     } 
    ]); 
+4

Yep, [đây là một liệng] (http://plnkr.co/edit/vscK9lLBhinBL9sYo65z?p=preview) –

+0

Cảm ơn @MohammadSepahvand thoải mái bổ sung. – Dalorzo

+0

Vâng, thật tuyệt. Cảm ơn. – zhulinpinyu

1

Đây là những gì tôi đã làm và làm việc tốt. Gọi SessionPresenters từ phiên

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' } 
     }); 
    }); 
Các vấn đề liên quan