[英]angular ui-router $stateProvider states iterate through object properties
我一直在尝试从$ stateProvider中配置的状态动态填充导航栏。 当我尝试获取状态名称或url或其他未定义的属性时,我一直在使用$ state.get(),但是找不到任何示例来说明如何使用它来遍历状态
只是为了清楚起见,下面是一个使用波纹管状态的示例,我需要能够动态生成带有状态名称(主,家,关于)的导航栏
$stateProvider
.state('main', {
abstract: true,
templateUrl: 'app/states/main/main.html'
})
.state('home', {
url: '/',
templateUrl: 'app/states/main/home/home.html',
controller: 'HomeController',
controllerAs: 'home'
})
.state('about', {
url: '/about',
templateUrl: 'app/states/main/about/about.html',
controller: 'AboutController',
controllerAs: 'about'
})
看到控制器的实现可能没有意义
angular
.module('myapp')
.controller('NavBarController', NavBarController);
function NavBarController($scope, $state) {
var states = $state.get();
angular.forEach(states, function (value, key) {
// value returns [Object Object];
// key returns numbers from 0 to 3
console.log('get states ---- ')
});
}
您是否尝试使用console.log(state.name)
来获取每个州的名称以及相应的其他内容?
$state.get()
返回一个数组,而for ... in
在对象的属性上进行迭代 。
您应该改为使用angular.forEach
:
// Get all state config objects
var states = $state.get();
// Loops through each state in states
// "value" is each state config object
angular.forEach(states, function(value, key) {
// Log each state name
console.log(value.name);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.