ui-router状态URL中的多个参数

时间:2016-03-30 08:41:28

标签: angularjs angular-ui-router

是否可以在ui-router状态url中使用多个参数?

请注意以下示例中的idgame_id

.state('games', {
    url: 'users/{id}/games/{game_id}',
    templateUrl: 'games/_game.html',
    controller: 'GameCtrl'
})

当我尝试导航到类似app.io/users/1/games/2的网址时,它会自动重定向到页面之外,所以我想知道它是否不可能?

2 个答案:

答案 0 :(得分:1)

要在angular-ui-router中指定网址参数,您需要使用:param而不是{param}

.state('games', {
    url: 'users/:id/games/:game_id',
    templateUrl: 'games/_game.html',
    controller: 'GameCtrl'
})

有关更多示例,请参阅其文档。

答案 1 :(得分:1)

回答我自己的问题 - 是的,可能。 我的错误是使用了错误的语法。

我这样做了

.state('games', {
    url: 'users/{id}/games/{game_id}',
    templateUrl: 'games/_game.html',
    controller: 'GameCtrl'
})

但应该这样做

.state('games', {
    url: '/users/{id}/games/{game_id}',
    templateUrl: 'games/_game.html',
    controller: 'GameCtrl'
})

请注意传递给/的字符串开头的url:。需要/才能使其正常工作。