2016-03-30 66 views
0

是否可以在ui路由器状态url中使用多个参数?ui路由器状态URL中的多个参数

注意到例如idgame_id下面

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

当我尝试导航到一个URL一样,它app.io/users/1/games/2所以我想知道如果它无法自动重定向到页面的?

+0

你使用的是基于html5的url吗?如果不是,那么你需要在那里指定基于哈希的URL:'app.io /#/ users/1/games/2' –

+0

检查参数的值 –

+1

可能需要提到像这样的参数:''users /:id/games /:game_id'' –

回答

1

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

我这样做

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

但应该在传递给url:字符串的开头这样做

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

注意/。需要使用/才能使其工作。

1

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

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

请参阅他们的文档以获取更多示例。

+0

我认为'{}'和':'都有效。但是我遗漏了URL的'/'infront,'/ users /:id/games /:game_id' –

相关问题