如何根据不同的角度js路线值选择不同的模板

时间:2015-01-21 18:09:40

标签: javascript angularjs angularjs-routing

我有这样的路线:

$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'
        });

提前致谢。

1 个答案:

答案 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()中提取的路由参数