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