AngularJS-使用routeProvider“;什么时候;用于构造templateUrl名称的变量?

AngularJS-使用routeProvider“;什么时候;用于构造templateUrl名称的变量?,angularjs,controller,angularjs-routing,route-provider,Angularjs,Controller,Angularjs Routing,Route Provider,这就是我想要实现的目标: 'use strict'; var app = angular.module('myModule', ['ngRoute']); app.config(function($routeProvider) { $routeProvider .when('/', { redirectTo: '/pages' }) .when('/pages/:pageName', { templateUrl: 'views/pages/

这就是我想要实现的目标:

'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没有定义。有什么不同的方法可以做到这一点?
谢谢

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

.when('/pages/:pageName', {
    templateUrl: function(params) {
        return 'views/pages/' + params.pageName + '.html';
    },
    controller: 'MainController'
});

templateUrl可以用作返回生成URL的函数。我们可以通过传递参数来操纵url,该参数采用routeParams

参见示例

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

希望对您有所帮助。

谢谢。这很有魅力。只有一件事——错过了一个机会。在'和html之间,如:+'.html.再次感谢您!