这是一个愚蠢的问题,但我是否希望在我的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
做类似的事情?我正在阅读这篇文章,但如果有人有快速回答,请告诉我!
答案 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"
}
]