web-dev-qa-db-ja.com

angularjsの別のモジュールで定義されたファクトリへのアクセス

あるモジュールで定義されているファクトリー関数を別のモジュールから呼び出すことはできますか?もしそうなら、どのように?

私の最初のモジュールが_moduleOne.js_ファイルで次のように定義されているとしましょう:

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

そして、_moduleTwo.js_の2番目のモジュール:

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

sampleFunTwo()からsampleFun()を呼び出す方法

ありがとう。

28
Sai_23

injectMyServiceModuleTwoMyServiceModuleに挿入する必要があります。

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

次にinjectnotifytwonotifyに:

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


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

plunker のコード

45
cuongle