angularjs中的ui.router动态路由

angularjs中的ui.router动态路由,angularjs,Angularjs,我有下面的场景。 我正在尝试为动态边栏编写一个路由系统。 我的边栏由几个项目组成(至少10个),每个项目至少有一个选项卡(可以是3个或5个…)。下面应该给出一个想法: 项目1->tab1-tab2-tab3 项目2->tabA tabB tabC itemX->tabX tabY tabZ 我知道使用state$stateprovider可以根据用户单击的内容设置url和templateUrl以加载不同的html内容(外部html文件)。 因此,为了实现这一点,我必须编写一系列状态,我觉得

我有下面的场景。 我正在尝试为动态边栏编写一个路由系统。 我的边栏由几个项目组成(至少10个),每个项目至少有一个选项卡(可以是3个或5个…)。下面应该给出一个想法:

项目1->tab1-tab2-tab3

项目2->tabA tabB tabC

itemX->tabX tabY tabZ

我知道使用state$stateprovider可以根据用户单击的内容设置url和templateUrl以加载不同的html内容(外部html文件)。 因此,为了实现这一点,我必须编写一系列状态,我觉得这将是一个糟糕的编程,必须有一种方法根据用户单击的内容进行动态路由。我已经在谷歌上搜索过了,我找不到正确的答案


诀窍是我必须使用ui.router来实现这一点。我可以阅读/使用任何想法或指南来完成此任务吗

我假设,由于侧边栏是动态的,所以它来自某个数据源。您可以将该数据源配置为具有路由所需的所有信息或符合约定。比如:

angular.forEach(states, function(state) {
    $stateProvider.state(state, {
            url: '/' + state, 
            templateUrl: 'views/' + state + '.html',
            controller: state + 'Controller'
      }) ;
})

您看过
decorator
的文档了吗?“这可用于向ui路由器添加自定义功能,例如根据状态名称推断templateUrl。”0向下投票接受我实际上采用了不同的路径。我在构建选项卡时使用了一个json对象,我认为既然我已经有了这个对象,我只需向json对象添加一个path属性,并使用for循环迭代json并在配置阶段构建我的状态。它工作并为每个选项卡显示不同的.html文件。我肯定会深入研究装饰,这似乎是另一种更好的方式来满足我的需要。谢谢是的,这就是我最后做的。Im调试的唯一问题是,当我单击itemA和tabA之前单击item1和tab1时,内容仍然保留在那里。。。当从侧边栏单击新项目时,有没有办法重置为空白内容?这应该会自动发生。我本想发布一段代码片段,但他们的评论真的很烂。你可能应该接受上面的答案,然后再提出一个新问题。我假设您在index.html中还没有看到类似的内容。