【发布时间】:2015-03-02 16:21:12
【问题描述】:
我想根据我在 angularjs 引导程序中定义的预设常量更改与控制器关联的 templateUrl。我不知道如何改变它。我已经尝试过 UrlRouteProvider,但无法弄清楚如何使用它从文件系统中提取 html。我卡在 templateUrl 上。
在下面的代码中,输出首先显示“svcc 确实传入了第一个函数的console.out,但是在templateUrl 定义函数中,CONFIG 是未定义的。
我愿意接受其他方式来做到这一点。
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) {
}
});
}]);
【问题讨论】:
标签: angularjs angular-ui-router