问题
So this is what I am trying to accomplish:
'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'
});
});
Basically, I want to use the uri to determine which template is used. Currently I get an error that pageName is not defined which I understand. What would be a different way of doing this? Thanks!
回答1:
templateUrl
can be a function accepting object of route parameters:
.when('/pages/:pageName', {
templateUrl: function(params) {
return 'views/pages/' + params.pageName + '.html';
},
controller: 'MainController'
});
回答2:
templateUrl can be use as function with returning generated URL. We can manipulate url with passing argument which takes routeParams.
See the example.
.when('/:screenName/list',{
templateUrl: function(params){
return params.screenName +'/listUI'
}
})
Hope this help.
来源:https://stackoverflow.com/questions/20637999/angularjs-use-routeprovider-when-variables-to-construct-templateurl-name