Reputation: 1261
Is there any way to make dependency injection inside ui-router resolve function?
I trying to achieve something like this:
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;
}
}
In the original project I have a large array at currency
and a long list of services like eurdata
, usddata
etc, many of them not always used in resolving anArray
.
Tried $injector.get(currency + 'data')
but not worked.
Upvotes: 0
Views: 438
Reputation: 136144
You can have $injector inject inside resolve function and ask for dependency to it
resolve : {
anArray : ['$injector', function($injector) {
var currency = 'eur';
//here I'd like to make a dependency injection
var currencyDetail = $injector.get(dependencyName);
return currencyDetail;
}]
}
Upvotes: 2
Reputation: 2075
You can use the usual array-notation:
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;
}]
}
Upvotes: 2