Angular ui-router:动态添加状态,而不是在config

时间:2015-10-19 23:22:20

标签: javascript angularjs angular-ui-router

this question一样,我想动态添加ui-router状态,但我不确定如何执行以下操作:

我们从一小组路径(最多5个)开始,允许用户导航登录过程:用户登录(多步登录过程),然后选择他们想要使用的产品类型和角色(假设用户)有多个产品类型/角色,否则他们会绕过这个观点)。在那时,我想出去我的服务并获得用户有权访问的路由列表,给定用户ID,产品类型和&角色 - 我计划发送一系列与$stateProvider.state(...)提供的数据结构非常匹配的数据结构。

在我的app.run.js中,我正在检查$rootScope.$on("$stateChangeStart"并在多步登录过程中将用户从视图移动到视图,因此知道何时需要我的服务加载可用的路线。

当路由被加载时,我可能会在cookie中放置一个标志,表明它已为该用户/产品/角色正确加载。

我不认为提供商真的有意义,因为我不希望在配置中加载路由。调用服务来加载stateChangeStart中的路由是错误的(不确定原因)。

这种方法是否合理?

注意: 我还看到有一个outstanding request能够从$ stateProvider中删除状态。与此同时,在实现此请求之前,我们如何清除$ stateProvider路由(除了浏览器刷新)?

1 个答案:

答案 0 :(得分:0)

要在配置阶段之后添加状态,您应该使用ui-router-extra包中的未来状态功能。

由于没有官方支持删除路由,您可以合并this PR以获得一些信息,但您必须添加功能以从urlRouterProvider中删除条件,因为这是一个公关的错误。