AngularJs:循环/返回$ stateProvider / ui-router中的所有状态

时间:2015-08-05 13:00:03

标签: javascript angularjs angular-ui-router

这是一个愚蠢的问题,但我是否希望在我的app.js(我的AngularJS配置文件)中返回$stateProvider.state的所有实例,我将如何解决这个问题?例如,当我使用ngRoute时,我可以在.run()块中执行类似的操作:

.run(function ($route) {

     var someArray = [];
     angular.forEach($route.routes, function (route, path) {
          if (route.someKey) {
            console.log(path); // do something with route.someKey!!!
            someArray.push(route.someKey);
          }
   });
});

但是,在我的应用中,我使用的是ui-router而我无法使用$state做类似的事情?我正在阅读这篇文章,但如果有人有快速回答,请告诉我!

1 个答案:

答案 0 :(得分:8)

发现它! $state.get()有效!我以前一定是在文档中错过了这个!

$state.get()将输出一个对象数组,我运行console.log($state.get);并得到:

[
  {
    "name": "",
    "url": "^",
    "views": null,
    "abstract": true
  },
  {
    "abstract": true,
    "template": "<ui-view/>",
    "name": "app"
  },
  {
    "url": "/login",
    "templateUrl": "login/views/login.html",
    "controller": "LoginCtrl",
    "publicAccess": true,
    "name": "app.login"
  },
  {
    "abstract": true,
    "url": "/home",
    "templateUrl": "home/views/home-wrapper.html",
    "controller": "HomeCtrl",
    "name": "app.loggedInHome"
  }
]