ui.router url中的可选参数

时间:2015-08-18 23:33:40

标签: angularjs state angular-ui-router

无论是否在网址中设置 :id 参数,我都会尝试显示相同的视图。我有这个但 /cases 路线似乎没有 :id

.state 'messages',
  url: '/cases',
  views:
    '':
      templateUrl: 'views/messages.html',
      controller: 'MessagesCtrl'
    'ticketList@messages':
      templateUrl: 'views/messages/list.html'
    'ticketComments@messages' :
      templateUrl: '/views/messages/comments.html'
    'ticketDetail@messages' :
      templateUrl: '/views/messages/detail.html',
.state 'messages.id',
  url: '/cases/:id',
  views:
    '':
      templateUrl: 'views/messages.html',
      controller: 'MessagesCtrl'
    'ticketList@messages':
      templateUrl: 'views/messages/list.html'
    'ticketComments@messages' :
      templateUrl: '/views/messages/comments.html'
    'ticketDetail@messages' :
      templateUrl: '/views/messages/detail.html',

1 个答案:

答案 0 :(得分:1)

你几乎就在那里 - 只是孩子从父母那里继承了 url 。因此,为了使案件正常运作,我们应该这样做:

.state 'messages',
  url: '/cases',
  ....
.state 'messages.id',
  // url: '/cases/:id', // instead of this
  url: '/:id',          // we need this

我们可以做得更多,例如使用 params :{} 来定义更精确的设置。检查这些例如: