使用Angular的ui-router,是否可以获得所有已注册状态的列表?

时间:2014-12-11 19:32:50

标签: angularjs angular-ui-router

使用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 对象,但似乎有任何方法可以访问它。

1 个答案:

答案 0 :(得分:1)

我想说,您正在搜索方法 $state.get() ,请在此处查看:

API Reference $state

  

<强> get(stateOrName, context)

     

返回任何特定状态或所有状态的状态配置对象。   参数

     
      
  • stateOrName(可选)stringobject
      (绝对或相对)如果提供,将仅获取所请求状态的配置。 如果未提供,则返回所有状态配置的数组。
  •   
  • context(可选)stringobject
      当stateOrName是相对状态引用时,将相对于上下文检索状态。
  •   

如文档中所述:&#34; ...如果未提供,则返回所有状态配置的数组...&#34;

相关问题