我有一个角度配置:
(function () {
'use strict';
angular
.module("app.functionality")
.config(config);
// +------------------------------------------------------------------+
// | Implementations |
// +------------------------------------------------------------------+
config.$inject = ["$stateProvider"];
function config($stateProvider) {
$stateProvider.state("aState", {
url: "/:idf/:idc",
views: {...},
resolve: {
aPromise: function ($stateParams) {
return {
idf: $stateParams.idf,
};
}
},
});
}
})();
和其他地方:
(function () {
'use strict';
angular
.module("MyService", [])
.factory("myService", service);
service.$inject = ["$http"];
function service($http)
{
// implementations
}
})();
这很有效,我可以获得idf
价值。我真正想要的是:
应该通过服务检索这些更丰富的数据(在idf
属性之后)
richerSetOfData: aService.getSomething($stateParams.idf)
但是我知道我不能将服务注入config
(只是提供者)。我可以使用run
,但运行不适合提供程序(我需要$ stateProvider)。那我怎么能做我需要的呢?什么是最佳实践?
答案 0 :(得分:0)
哟可以在解析功能中注入服务:
resolve: {
aPromise: ['$stateParams', 'myService', function ($stateParams, myService) {
return {
idf: myService.doSmthng($stateParams.idf)
};
}]
},