Ale*_*u R 165 angularjs angularjs-routing
我可以设置一个带有可选参数的路径(相同的模板和控制器,但如果它们不存在,应该忽略一些参数吗?
所以不是写下面两条规则,而是只有一条规则?
module.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/users/', {templateUrl: 'template.tpl.html', controller: myCtrl}).
when('/users/:userId', {templateUrl: 'template.tpl.html', controller: myCtrl})
}]);
Run Code Online (Sandbox Code Playgroud)
像这样的东西([这个参数是可选的])
when('/users[/:userId]', {templateUrl: 'template.tpl.html', controller: myCtrl})
//note: this previous doesn't work
Run Code Online (Sandbox Code Playgroud)
我在他们的文档中找不到任何内容.
小智 242
看起来Angular现在支持这一点.
从最新的(v1.2.0)文档$routeProvider.when(path, route):
path可以包含带有问号(:name?)的可选命名组
zmi*_*lan 57
就像@ g-eorge提到的那样,你可以这样做:
module.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/users/:userId?', {templateUrl: 'template.tpl.html', controller: myCtrl})
}]);
Run Code Online (Sandbox Code Playgroud)
您也可以根据需要制作可选参数.
小智 8
请在此处查看@jlareau答案:https://stackoverflow.com/questions/11534710/angularjs-how-to-use-routeparams-in-generating-the-templateurl
您可以使用函数生成模板字符串:
var app = angular.module('app',[]);
app.config(
function($routeProvider) {
$routeProvider.
when('/', {templateUrl:'/home'}).
when('/users/:user_id',
{
controller:UserView,
templateUrl: function(params){ return '/users/view/' + params.user_id; }
}
).
otherwise({redirectTo:'/'});
}
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
141128 次 |
| 最近记录: |