ui.router:如何省略URL的默认参数 [英] ui.router: how to omit a default parameter from URL

查看:303
本文介绍了ui.router:如何省略URL的默认参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有 $ stateProvider定义以下状态

$stateProvider.state("byTeams", {url : "/team/{id}/{year}", ...})
$stateProvider.state("byPlayer", {url : "/player/{id}/{year}", ...})

在不断变化的一年,我希望URL省略URL的 {一年} 部分,如果它的默认值相符(比如2014年)。换句话说,当

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/

否则,网址是: www.example.com/app /#/播放/二千零十三分之五百五十五

推荐答案

阅读的文档 PARAMS 壁球中的 $ 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆