angularjs ui-router:查找当前状态的级别

时间:2014-06-13 04:34:10

标签: regex angularjs angularjs-directive angularjs-scope angular-ui-router

所以我使用ui-router和stateparams来嵌套子状态,并且效果很好。我现在正试图找到一种方法来决定css类应用程序的状态级别。 main.route1.section1将是3级。

这里有一些非工作代码可以帮助显示:

<div ng-class="{findState().currentCount}"></div>

app.run(function($rootScope, $state, $stateParams) {
  $rootScope.$state = $state;
  $rootScope.$stateParams = $stateParams;
  $rootScope.findState = function() {
    var currentName = $state.current.name;
    var currentMatch = currentName.match(/./g);
    $rootScope.currentCount = currentMatch.length;
  };
});

我基本上正在寻找一种方法来取$state.current.name等于main.route1.section1并将其拆分为点并计算数组中有多少并将该数字返回给mg-类。除非你有更好的想法......就像正则表达式过滤器一样?

1 个答案:

答案 0 :(得分:8)

查看对象$state.$current(而不是$state.current)。特别是属性path:它是一个表示当前状态的状态层次结构的数组。

所以你要找的是:$state.$current.path.length