有没有办法在angular-ui-router中获取子状态列表?

时间:2014-02-12 16:52:18

标签: javascript angularjs angular-ui angular-ui-router

我正在构建一个角度应用程序,对于部分应用程序,我希望有一个菜单,其中包含根据可用状态动态填充的选项。这是我的状态配置的简化部分:

$stateProvider.state('root.type.list.controls', {
  url: '/controls',
  templateUrl: 'views/controls.html',
  controller: 'ControlsCtrl',
  data: {
    title: 'Controls'
  }
})
.state('root.type.list.items', {
  url: '/items',
  templateUrl: 'views/items.html',
  controller: 'ItemsCtrl',
  data: {
    title: 'Items'
  }
})

我希望能够根据配置的'root.type.list'部分中的内容,使用data状态的每个直接子项的标题填充下拉菜单。有没有办法获得特定州的所有子州名单?

1 个答案:

答案 0 :(得分:2)

使用$state.get()结束并执行以下操作:

function _children(stateName) {
  return _.filter($state.get(), function(config) {
    return stateName === config.name.slice(0, stateName.length) &&
      config.name.split('.').length === stateName.split('.').length + 1;
  });
}