2013-09-04 20 views
28

Chúng tôi có thể gọi các chức năng của nhà máy được xác định trong một mô-đun từ mô-đun khác không? Nếu vậy, làm thế nào?Truy cập vào nhà máy được xác định trong mô-đun khác trong angularjs

Hãy nói rằng mô-đun đầu tiên của tôi được định nghĩa trong tập tin moduleOne.js như:

var myModule = angular.module('MyServiceModuleOne', []); 
myModule.factory('notify', function() { 
    return { 
     sampleFun: function() { 
      // some code to call sampleFunTwo() 
     }, 
    }; 
}); 

Và mô-đun thứ hai của tôi trong moduleTwo.js như:

var myModuleTwo = angular.module('MyServiceModuleTwo', []); 
myModuleTwo.factory('notifytwo', function() { 
    return { 
     sampleFunTwo: function() { 
      // code 
     }, 
    }; 
}); 

Làm thế nào để gọi sampleFunTwo() từ sampleFun()?

Cảm ơn.

Trả lời

44

Bạn cần phải tiêmMyServiceModuleTwo vào MyServiceModule:

var myModuleTwo= angular.module('MyServiceModuleTwo',[]); 
var myModule= angular.module('MyServiceModuleOne', ['MyServiceModuleTwo']); 

Sau đó tiêmnotifytwo vào notify:

myModule.factory('notify', function(notifytwo) { 
    return { 
     sampleFun: function() { 
      notifytwo.sampleFunTwo(); 
     }  
    }; 
}); 


myModuleTwo.factory('notifytwo', function() { 
    return { 
     sampleFunTwo: function() { 
      alert('From notify two'); 
     }  
    }; 
}); 

Và mã trên plunker

+6

gì nếu cả hai mô-đun đã làm bị thương ected trên module chính? – Manatax

Các vấn đề liên quan