我有一个常量文件。
var app = angular.module('ops.services');
app.constant('opsConstants', {
GID: 'UA1'
});
app.service('OpsConstantService', OpsConstantService);
OpsConstantService.$inject = ['opsConstants'];
function OpsConstantService(opsConstants){
this.OPSCONSTANTS = opsConstants;
}
My app module
取决于相同内容,并且已提供 DI 。
var opsApp = angular.module('opsApp', ['ui.router', 'ops.services', 'angular-momentjs']);
现在,在我的应用中,routing
我需要访问常量值。
opsApp.config(routerConfig);
routerConfig.$inject = ['$stateProvider', '$urlRouterProvider'];
function routerConfig($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/home/dashboard/");
$stateProvider
.state('Modal', {
url: '^/modal/{obj_id}/{name}/{tab_id}/{start_date}/{end_date}/{repos}',
resolve: {
ModalTabs: ['OpsConstantService',function(OpsConstantService){
return OpsConstantService.opsConstants.GID;
}]
},
views: {
'repo@': {
templateUrl: function(stateParams) {
debugger; // I am not able to get the GID value here
var tab_id = stateParams.tab_id;
return 'src/modals/nodes/' + tab_id + '/' + 'my_bp.html';
}
},
我正在尝试resolve
但是唉!什么都行不通。
如何访问常量值以便我可以动态配置要呈现的模板?
更新
如果我这样做,
routerConfig.$inject = ['$stateProvider', '$urlRouterProvider','OpsConstantService'];
function routerConfig($stateProvider, $urlRouterProvider,OpsConstantService) {
我收到injector module
错误。
答案 0 :(得分:0)
您的问题是不同的角度自举阶段。简短说明:
状态声明在angular的.config阶段内。在这个阶段,angular.service不可用(旁注:在angular.run阶段,它们是可用的)。
如果您需要,您需要将服务构建为angular.provider,而在此阶段可以访问它们。此外,您的常数本身也应该可用。