依赖注入中的AngularJS名称冲突?

时间:2014-04-07 19:27:37

标签: javascript angularjs

假设我有两个模块(finance2,finance3),并且每个模块都定义了一个具有相同名称的服务(currencyConverter)。

如果我告诉我的主模块它只依赖于finance2,我可以像这样注入服务:

angular.module('invoice2', ['finance2'])
  .controller('InvoiceController', ['currencyConverter', function(currencyConverter) {

但是,如果我希望我的invoice2依赖于两个模块,将注入哪个currencyConverter?来自finance2的那个还是来自finance3的那个?我可以控制自己的模块,但我关心的是你是否依赖于定义具有相同名称的工厂的其他人模块。棱角分明如何处理?

angular.module('invoice2', ['finance2','finance3'])
  .controller('InvoiceController', ['currencyConverter', function(currencyConverter) {

1 个答案:

答案 0 :(得分:3)

加载/处理的最后一个将获胜。

如果您的脚本是:

  • finance2(with currencyConverter)
  • finance3(with currencyConverter)

然后,当货币转换器的相关性得到解决时,您将获得finance3的currencyConverter。

如果您的脚本是:

  • finance3(with currencyConverter)
  • finance2(with currencyConverter)

然后,当货币转换器的依赖关系得到解决时,您将获得finance2的currencyConverter。