ui-router url具有层次结构的参数

时间:2014-09-21 11:18:41

标签: angularjs angular-ui-router

如何在ui-router模块的$ stateProvider中设置url路由,并在这样的层次结构中使用url params

/home  
/:username  
/:title/editor

如果在同一层次结构级别上没有冲突,我只能使用它,如:

/home  
/user/:username  
/editor/:title

现在,如果我尝试像第一个示例中那样设置它,那么所有内容都会路由到/home

我从Google Appengine等其他情况中了解到这一点,其中第一种方法也会起作用,并且它将被视为一种层次结构,/:username路由将适用,只要它不等于&# 39;家用'

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我想说这应该是可能的,例如这可行(见example):

$stateProvider
  .state('home', {
    url: '/home',
    templateUrl: 'test.html',
    controller: 'TestCtrl',
  })
  .state('editor', {
    url: '/:title/editor',
    ...
  })
  .state('user', {
    url: '/:userName',
    ...

观察它here。之所以如此,是因为状态编辑器 - 强键 /editor 会在userName之前进行评估。同样适用于家庭 - 这是第一个评估模式。

但是 - 我建议,不要指望秩序。在开头使用这些鉴别器(例如/ user / ...或/ editor / ..)。我们的用户也会理解它,以及任何后来的混乱(为什么这个网址触发了这个状态)不会让我们感到惊讶