New*_*Dev 8 angularjs angular-ui-router
我有以下状态定义$stateProvider:
$stateProvider.state("byTeams", {url : "/team/{id}/{year}", ...})
$stateProvider.state("byPlayer", {url : "/player/{id}/{year}", ...})
Run Code Online (Sandbox Code Playgroud)
更改一年时,我希望URL与URL的{year}部分匹配,如果它与默认值匹配(比如2014).换句话说,当:
$state.go("byTeams", {year: 2014}) --> www.example.com/app/#/team/343
$state.go("byTeams", {year: 2013}) --> www.example.com/app/#/team/343/2013
Run Code Online (Sandbox Code Playgroud)
当我切换到一个byPlayer视图(假设年份是2014年 - 默认):
$state.go("byPlayer", {id: 555}) --> www.example.com/app/#/player/555/
Run Code Online (Sandbox Code Playgroud)
否则,URL将是: www.example.com/app/#/player/555/2013
Chr*_*s T 16
阅读文档的params和squash在$stateProvider.state()
$stateProvider.state("byPlayer", {
url : "/player/{id}/{year}",
params: {
year: {
value: function() { return getCurrentYear(); },
squash: true
}
}
})
Run Code Online (Sandbox Code Playgroud)