如何设置无尽的UIRouter状态层次结构?

时间:2016-07-29 11:25:25

标签: angularjs angular-ui-router

在我的angularjs应用程序中,有一个'项目'的概念。每个项目可以包含0个或更多文件夹,每个文件夹可以包含0个或更多子文件夹。反过来,每个子文件夹可以包含0个或更多个子子文件夹,依此类推。层次结构中的文件夹级别数量没有实际限制。

我想将每个文件夹级别映射到UIRouter状态级别。

如,

URL                                                                        State name
http://localhost:8079/projects/1122024                                  -> _.projects.view
http://localhost:8079/projects/1122024/folders/123890                   -> _.projects.view.folder
http://localhost:8079/projects/1122024/folders/123890/547938            -> _.projects.view.folder.folder
http://localhost:8079/projects/1122024/folders/123890/547938/124890     -> _.projects.view.folder.folder.folder

是否可以在UIRouter中声明这样一个无穷无尽的层次结构?如果是,那怎么样?我现在唯一的想法是使用string.split,就像下面的代码一样 - 但我真的不觉得这是正确的方法。有什么想法吗?

.state('_.projects.view', {
    url: '/{projectId:int}'
})
.state('_.projects.view.folders', {
  url: '/folders/{folderIds}',
  resolve: {
    folderIdTree: function($stateParams) {
      $stateParams.folderIds.split('/');
    }
  }
}

0 个答案:

没有答案