I want to change the templateUrl associated with controller based on a preset constant that I've defined in my angularjs bootstrap. I can't figure out how to change that. I've experimented with UrlRouteProvider but have not been able to figure out how to pull the html in from the file system with that. I'm stuck on templateUrl.
In the below code, the output first shows that "svcc is indeed passed into the first function's console.out but in the templateUrl definition function, CONFIG is undefined.
I'm open to other ways to do this.
var app = angular.module('svccApp', [
'ui.router'
]);
var myConstant = {};
myConstant.codeCampType = "svcc";
app.constant("CONFIG", myConstant);
app.config(['$stateProvider', '$urlRouterProvider','CONFIG',
function ($stateProvider, $urlRouterProvider,CONFIG) {
console.log(CONFIG.codeCampType);
$stateProvider
.state('home', {
url: '/home',
//templateUrl: 'index5templateA.html', (THIS WORKS)
templateUrl: function(CONFIG) {
console.log('in templateUrl ' + CONFIG.codeCampType);
if (CONFIG.codeCampType === "svcc") {
return 'index5templateA.html';
} else {
return 'index5templateB.html';
}
},
controller: function ($state) {
}
});
}]);
Question&Answers:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…