如何跳过参数

时间:2016-01-26 13:47:49

标签: angularjs angular-ui-router

我使用的是角度ui-router

这是我的示例路线:

.state('collection.details', {
    url: '{id:[0-9]+}/?extra',
    views: {}
})
.state('collection.details.edit', {
    url: 'edit/',
    views: {}
})

有关详细信息,我可以使用此app/2/?extra=true这样的网址,但是当我从该状态进行编辑时,我会收到类似app/2/edit/?extra=true的网址,我想删除?extra=true,因此网址看起来像{ {1}}。可能吗?我不想失去嵌套路线。

1 个答案:

答案 0 :(得分:0)

选项1:默认路由为添加

处理默认状态' collection.details' as"添加"

.state('collection.details', { //this state does add
    url: '{id:[0-9]+}/', 
    views: {}
})
.state('collection.details.edit', { //this state does edit
    url: 'edit/',
    views: {}
})

选项2:使用$ urlRouterProvider.when()

如何使用" / add"而不是使用"?add = true?
This post在()

时解释了有关正则表达式的更多信息
//haven't tried this with regex before
$urlRouterProvider.when('{id:[0-9]+}/', '{id:[0-9]+}/add');

.state('collection.details', {
    abstract: true,
    url: '{id:[0-9]+}/',
    views: {}
})
.state('collection.details.add', {
    url: 'add/',
    views: {}
})
.state('collection.details.edit', {
    url: 'edit/',
    views: {}
})