ui.router:如何从 URL 中省略默认参数 [英] ui.router: how to omit a default parameter from URL
本文介绍了ui.router:如何从 URL 中省略默认参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用 $stateProvider
:
$stateProvider.state("byTeams", {url : "/team/{id}/{year}", ...})
$stateProvider.state("byPlayer", {url : "/player/{id}/{year}", ...})
更改年份时,如果 URL 与默认值匹配(例如 2014),我希望 URL 省略 URL 的 {year}
部分.换句话说,当:
When changing a year, I would like the URL to omit the {year}
part of the URL if it matches the default (say 2014). In other words, when:
$state.go("byTeams", {year: 2014}) --> www.example.com/app/#/team/343
$state.go("byTeams", {year: 2013}) --> www.example.com/app/#/team/343/2013
当我切换到 byPlayer
视图时(假设年份是 2014 - 默认):
And when I switch to a byPlayer
view (assuming the year is 2014 - default):
$state.go("byPlayer", {id: 555}) --> www.example.com/app/#/player/555/
否则,URL 将是:www.example.com/app/#/player/555/2013
推荐答案
阅读docs 用于 params
和 squash
在 $stateProvider.state()
Read the docs for params
and squash
in $stateProvider.state()
$stateProvider.state("byPlayer", {
url : "/player/{id}/{year}",
params: {
year: {
value: function() { return getCurrentYear(); },
squash: true
}
}
})
这篇关于ui.router:如何从 URL 中省略默认参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文