0

有什么办法可以在ui-router解析函数内部进行依赖注入吗?角度ui路由器解决方案中的动态依赖注入

我想实现这样的事情:

resolve : { 
    anArray : function(/* no dependencies yet */) { 
     var currency = 'eur'; 

     //here I'd like to make a dependency injection 
     var currencyDetail = /*injected dependency*/.get(); 
     return currencyDetail; 
    } 
} 

在原来的项目,我必须在currency大阵和服务像eurdatausddata等一个长长的清单,其中许多人并不总是在解决使用anArray

尝试$injector.get(currency + 'data')但没有奏效。

回答

1

你可以有$注射器决心函数内注射,并要求依赖于它

resolve : { 
    anArray : ['$injector', function($injector) { 
     var currency = 'eur'; 

     //here I'd like to make a dependency injection 
     var currencyDetail = $injector.get(dependencyName); 
     return currencyDetail; 
    }] 
} 
+0

是的。我忘了注入$注入器。谢谢。 – neptune

+0

@neptune很高兴知道,帮助..谢谢:-) –

1

您可以使用通常的阵列的符号:

resolve: { 
    anArray: ['dependency', function(dependency) { 
    var currency = 'eur'; 

    //here I'd like to make a dependency injection 
    dependency.doSomething(); 

    var currencyDetail = /*injected dependency*/.get(); 
    return currencyDetail; 
    }] 
} 
+0

依我之见,你直接注入的依赖称为“依赖”,但在我的情况下,我没有任何依赖关系。我想将它们注入函数中。 – neptune

+0

那么,你会在什么时候拥有它们?你是否动态创建服务?你是从后端加载它们吗? – JanS

+0

我已经创建了所有的服务,但我不想仅仅基于'currency'注入所有服务。 – neptune