是否可以使用动态ui.router $stateParams
参数?如果用户提供路线上的参数,我只想通过名称或顺序位置来解决它们。但是,我不想在每个州都定义它们。
像这样......
.state('selector', {
url: '/select/:brandId/:userId/:appId/:appVerId/:featureId/:dialogId/:controlId/:token',
template: null,
controller: 'Selector',
params: {
brandId : { squash: true, value: null },
userId : { squash: true, value: null },
appId : { squash: true, value: null },
appVerId : { squash: true, value: null },
featureId : { squash: true, value: null },
dialogId : { squash: true, value: null },
controlId : { squash: true, value: null },
token : { squash: true, value: null }
}
})
......或者......
.state('selector', {
url: '/select/:a/:b/:c/:d/:e/:f/:g/:h',
template: null,
controller: 'Selector',
params: {
a : { squash: true, value: null },
b : { squash: true, value: null },
c : { squash: true, value: null },
d : { squash: true, value: null },
e : { squash: true, value: null },
f : { squash: true, value: null },
g : { squash: true, value: null },
h : { squash: true, value: null }
}
})
我想通过名字或序数位置访问它们......
var a = $stateParams.a; // or
var b = $stateParams[1];
这将允许以下网址有效:
http://adsf.com/selector
http://adsf.com/selector/////217H3
http://adsf.com/selector/23AD/12D///217H3
答案 0 :(得分:1)
在你提出这个问题之前,我已经在另一个五个月的帖子中回复了
Angular UI-Router more Optional Parameters in one State
简短回答....
.state('login', {
url: '/login/:a/:b/:c/:d',
templateUrl: 'views/login.html',
controller: 'LoginCtrl',
params: {
a: { squash: true, value: null },
b: { squash: true, value: null },
c: { squash: true, value: null },
d: { squash: true, value: null },
}
})