使用ui-router构建一个相当大的角度应用程序。我试图添加白名单状态,在这种情况下意味着在您看到它们之前不需要身份验证的状态。我希望能够将整个状态及其子状态指定为列入白名单 - 也就是说,如果我有以下状态:
index.home
index.library
index.messages
index.messages.inbox
index.messages.outbox
index.messages.outbox.starred
我希望能够设置" index.messages。*',而不是阻止以' index.messages'开头的任何状态。我设法通过为'$stateChangeStart'
添加一个监听器并在' toState.name'上做一些奇特的字符串解析来实现这一点,但我怀疑如果我有一个完整的可用列表,这将更容易做到状态。有没有办法得到它?粗略地通过源代码向我展示了一个 $ stateProvider.states 对象,但似乎有任何方法可以访问它。
答案 0 :(得分:1)
我想说,您正在搜索方法 $state.get()
,请在此处查看:
$state
<强>
get(stateOrName, context)
强>返回任何特定状态或所有状态的状态配置对象。 参数
- stateOrName(可选)stringobject
(绝对或相对)如果提供,将仅获取所请求状态的配置。 如果未提供,则返回所有状态配置的数组。- context(可选)stringobject
当stateOrName是相对状态引用时,将相对于上下文检索状态。
如文档中所述:&#34; ...如果未提供,则返回所有状态配置的数组...&#34;