这种语法有什么问题?
如果我点击此链接:#/ app / games / game / {{id}} / team
它重定向到:#/ app / games ,而不是转到上面的
gameitem.html模板:
<a class="tab-item" ng-href="#/app/games/game/{{id}}/team">Team</a>
呈现给:#/ app / games / game / 2 / team
路由状态:
.state('app.game', {
url: "/games/game/:id",
views: {
'menuContent': {
templateUrl: "templates/gameitem.html",
controller: 'GameItemController'
}
}
})
.state('app.game.team', {
url: "/games/game/:id/team",
views: {
'menuContent': {
templateUrl: "templates/gameitem-team.html",
controller: 'GameItemTeamController'
}
}
})
&#13;
答案 0 :(得分:1)
使用ui-sref
,这样您可以直接指向您的州,这样您就可以更改网址,然后它会以模板方式为您处理:
<a class="tab-item" ui-sref="app.game.team({'id': id})">Team</a>
参考:
https://github.com/angular-ui/ui-router/wiki/Quick-Reference#ui-sref
Martin在评论中指出,childstate中的URL属性将使用过的值附加到父URL的URL中。用^
作为前缀使其成为绝对路线。
参考:
https://github.com/angular-ui/ui-router/wiki/URL-Routing#url-routing-for-nested-states
答案 1 :(得分:1)
不要在ui-router中使用ng-href。而是使用ui-sref。
ui-sref="app.game.team({id:id})"
答案 2 :(得分:1)
你应该使用ui-sref,如前面的答案所述。但是你的问题是错误地定义了子状态的url。
&#39; app.game&#39;是父母州,&#39; app.game.team&#39;子状态 - 因为点符号(https://github.com/angular-ui/ui-router/wiki/Nested-States-%26-Nested-Views#dot-notation)。 嵌套状态是url连接。正确的网址是app.game.team&#39;国家应该是&#34; / team&#34;仅(见https://github.com/angular-ui/ui-router/wiki/URL-Routing#url-routing-for-nested-states)