与this question一样,我想动态添加ui-router状态,但我不确定如何执行以下操作:
我们从一小组路径(最多5个)开始,允许用户导航登录过程:用户登录(多步登录过程),然后选择他们想要使用的产品类型和角色(假设用户)有多个产品类型/角色,否则他们会绕过这个观点)。在那时,我想出去我的服务并获得用户有权访问的路由列表,给定用户ID,产品类型和&角色 - 我计划发送一系列与$stateProvider.state(...)
提供的数据结构非常匹配的数据结构。
在我的app.run.js中,我正在检查$rootScope.$on("$stateChangeStart"
并在多步登录过程中将用户从视图移动到视图,因此知道何时需要我的服务加载可用的路线。
当路由被加载时,我可能会在cookie中放置一个标志,表明它已为该用户/产品/角色正确加载。
我不认为提供商真的有意义,因为我不希望在配置中加载路由。调用服务来加载stateChangeStart中的路由是错误的(不确定原因)。
这种方法是否合理?
注意: 我还看到有一个outstanding request能够从$ stateProvider中删除状态。与此同时,在实现此请求之前,我们如何清除$ stateProvider路由(除了浏览器刷新)?
答案 0 :(得分:0)
要在配置阶段之后添加状态,您应该使用ui-router-extra
包中的未来状态功能。
由于没有官方支持删除路由,您可以合并this PR以获得一些信息,但您必须添加功能以从urlRouterProvider
中删除条件,因为这是一个公关的错误。