2014-10-29 49 views
0

我有一個模塊配置功能,我想在幾個模塊中使用它。我以這種方式幫助了我,但我認爲,angular.js中可能有更好的方法嗎?在幾個模塊中重新使用函數的角度最佳做法是什麼?

(function() { 
    angular.module("myApp", ["moduleA", "moduleB"]); 
    angular.module("myApp").subModuleConfig = function(module) { 
    return function() { 
     console.log("Config Module " + module) 
    } 
    } 
}()); 

(function() { 
    angular.module("moduleA", []) 
    .config([angular.module("myApp").subModuleConfig("A")]); 
}()); 

(function() { 
    angular.module("moduleB", []) 
    .config([angular.module("myApp").subModuleConfig("B")]); 
}()); 

這裏是一個plunkr:http://plnkr.co/edit/4LzLPgnF87WCbL3LeCIR?p=preview

+0

使用工廠或服務 – user2717954 2014-10-29 07:26:00

+0

我不知道,我怎麼能使用服務或工廠函數作爲一個配置FKT其它模塊 - 你將如何注入在這種情況下,服務? – westor 2014-10-29 09:24:40

回答

1

你可以做一個配置新的模塊。

您只能注入提供程序和常量來配置,因此您可以將subModuleConfig設爲工廠,而不是將其設置爲提供程序,並將this.$get設置爲您的配置功能(儘管可能更醜)。

使用工廠,您可以將多個不同的配置設置到同一工廠。

(function() { 
    angular.module("myApp", ["moduleA", "moduleB"]); 

    angular.module("configModule", []).factory("subModuleConfig", function() { 
     return function(module) { 
     console.log("Config Module " + module) 
     } 
    }); 
    }()); 

    (function() { 
    angular.module("moduleA", ["configModule"]) 
     .config(["subModuleConfigProvider", function(subModuleConfigProvider) { 
     var subModuleConfig = subModuleConfigProvider.$get(); 
     return subModuleConfig("A"); 
     }]); 
    }()); 

    (function() { 
    angular.module("moduleB", ["configModule"]) 
     .config(["subModuleConfigProvider", function(subModuleConfigProvider) { 
     var subModuleConfig = subModuleConfigProvider.$get(); 
     return subModuleConfig("B"); 
     }]); 

    }()); 
相關問題