如何根据不同的angular js路由值select不同的模板

How to select different template depending on different angular js route value

我有这样的路线:

$routeProvider.when('/test/item/:item', {
            templateUrl: '/test/test.html'
            , controller: 'TestController'
        });

现在我想根据不同的 :item 值加载不同的 templateUrl,在 angularJS 中我该怎么做?

例如:

$routeProvider.when('/test/item/:1', {
            templateUrl: '/test/test1.html'
            , controller: 'TestController'
        });
$routeProvider.when('/test/item/:2', {
            templateUrl: '/test/test2.html'
            , controller: 'TestController'
        });

提前致谢。

templateUrl 也可以是一个函数,你得到的第一个参数将是路由参数:

所以你可以这样做:-

  $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()=} – path or function that returns a path to an html template that should be used by ngView.

If templateUrl is a function, it will be called with the following parameters:

{Array.} - route parameters extracted from the current $location.path() by applying the current route