21

所以这就是我想要完成的:

'use strict';

var app = angular.module('myModule', ['ngRoute']);

app.config(function($routeProvider) {
  $routeProvider
    .when('/', {
      redirectTo: '/pages'
    })
    .when('/pages/:pageName', {
      templateUrl: 'views/pages/'+pageName+'html',
      controller: 'MainController'
    });
});

基本上,我想使用 uri 来确定使用哪个模板。目前我收到一个错误,即我理解的 pageName 未定义。这样做会有什么不同的方式?谢谢!

4

2 回答 2

38

templateUrl可以是接受路由参数对象的函数:

.when('/pages/:pageName', {
    templateUrl: function(params) {
        return 'views/pages/' + params.pageName + '.html';
    },
    controller: 'MainController'
});
于 2013-12-17T15:38:01.260 回答
5

templateUrl 可以用作返回生成 URL 的函数。我们可以使用带有 routeParams 的传递参数来操作 url。

请参阅示例。

.when('/:screenName/list',{
    templateUrl: function(params){
         return params.screenName +'/listUI'
    }
})

希望这有帮助。

于 2014-12-03T08:17:31.617 回答