我有这样的路线:
$routeProvider.when('/test/item/:item', {
templateUrl: '/test/test.html'
, controller: 'TestController'
});
现在我想加载不同的templateUrl,具体取决于不同的:item值,如何在angularJS中执行?
例如:
$routeProvider.when('/test/item/:1', {
templateUrl: '/test/test1.html'
, controller: 'TestController'
});
$routeProvider.when('/test/item/:2', {
templateUrl: '/test/test2.html'
, controller: 'TestController'
});
提前致谢。
答案 0 :(得分:3)
templateUrl也可以是一个函数,你得到的第一个参数将是route params:
所以你可以这样做: -
$routeProvider.when('/test/item/:item', {
templateUrl: function(param){
return '/test/test' + param.name + '.html'
/*if(param.name === 'somevalue'){
return someurl;
}
return someotherurl;*/
}
, controller: 'TestController'
});
templateUrl - {string = | function()=} - 返回应由ngView使用的html模板路径的路径或函数。
如果templateUrl是一个函数,它将使用以下参数调用:
{Array。} - 通过应用当前路径
从当前$ location.path()中提取的路由参数