ui-router:有没有办法在url的开头有变量?

时间:2014-08-31 14:23:30

标签: angularjs angular-ui-router

我希望在我的路线中有一个变量:

    $stateProvider
    .state('edit', {
        url: ':organization/edit',
        templateUrl: 'partials/edit.html',
        controller: 'editController',
        controllerAs: 'editController'
    })

让它与使用

同时工作
$urlRouterProvider.otherwise('index');

这可能吗?因为我发现当我试图去

时,其他规则就开始了
myOrganization/edit

然后我被重定向到索引。我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

这应该是可能的,如here所示。诀窍是将索引定义为第一个状态(好吧,不是第一个,而是在编辑之前)

  .state('index',{
    url:'/index',
    template:'<div>index</div>',
  })
  .state('edit', {
    url: '/:organization/edit', 
    ...
  })

ui-router将按状态评估网址状态,因为它们已定义。第一场比赛将决定。因此,如果找到索引,在这种情况下,选择索引状态......

检查here

我的(私人)建议是:不要依赖订单。尝试定义要真正简单识别的状态。更重要的是,我的经验是,如果用户使用网址,他们会复制/粘贴...所以,它可能会更健谈......