我们可以从另一个模块中调用一个模块中定义的工厂功能吗?如果是这样,怎么办?
假设我的第一个模块在moduleOne.js
文件中定义为:
var myModule = angular.module('MyServiceModuleOne', []);
myModule.factory('notify', function () {
return {
sampleFun: function () {
// some code to call sampleFunTwo()
},
};
});
我在
moduleTwo.js
中的第二个模块为:var myModuleTwo = angular.module('MyServiceModuleTwo', []);
myModuleTwo.factory('notifytwo', function () {
return {
sampleFunTwo: function () {
// code
},
};
});
如何从
sampleFunTwo()
调用sampleFun()
?谢谢。
最佳答案
您需要将MyServiceModuleTwo
注入(inject)MyServiceModule
:
var myModuleTwo= angular.module('MyServiceModuleTwo',[]);
var myModule= angular.module('MyServiceModuleOne', ['MyServiceModuleTwo']);
然后将
notifytwo
注入(inject)notify
:myModule.factory('notify', function(notifytwo) {
return {
sampleFun: function() {
notifytwo.sampleFunTwo();
}
};
});
myModuleTwo.factory('notifytwo', function() {
return {
sampleFunTwo: function() {
alert('From notify two');
}
};
});
以及plunker上的代码