就像Angularjs的路由可以有可选参数值吗?和AngularJS:使用带有可选参数问号?
和参数名称的URL进行路由应使其可选。它没有帮助我。
var app = angular.module('app', ['ui.router','ngRoute']);
app.config(function ($urlRouterProvider, $stateProvider) {
$urlRouterProvider.otherwise('/a');
$stateProvider.state('a', {
url: '/a',
templateUrl: 'views/a.html'
}).state('b', {
url: '/b/:code?/:d?',
templateUrl : 'views/b.html'
})
});
这个网址http:// localhost:xx / kk /#/ b / 1/2对我来说很好。但是http:// localhost:xx / kk /#/ b(没有任何参数)和http:// localhost:xx / kk /#/ b / 1对我不起作用...
您可能会看到我正在使用$stateProvider
ui-router。我不想切换到$urlRouteProvider
我们需要一个名为的设置params : {}
,它可以处理可选参数:
params: {
code: {squash: true, value: null},
}
所以国家的定义是
.state('b', {
url: '/b/:code/:d',
templateUrl : 'views/b.html',
params: {
code: {squash: true, value: null},
d : {squash: true, value: null},
}
})
这些将起作用:
<a href="#/b">
<a href="#/b/code1">
<a href="#/b/code22">
<a href="#/b/code333/d4">
检查这些以获取更多详细信息和示例:
还有一些更多的魔术:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句