AngularJS UI-Router:与组件中的$ state.includes匹配状态

时间:2017-08-04 19:07:29

标签: javascript angularjs angular-ui-router

我有一个AngularJS(1.5.1)组件。该组件出现在我的应用程序中。

我需要根据当前活动的URL在此组件的模板中执行某些操作。

例如,当应用在网址中显示#/web/foundation/color或任何其他状态web时,我需要设置一个包含ng-class的类。如果网址具有给定的href,我需要返回true

我试图使用ng-class="{'active' : $state.includes('web')}"

与该网址相关联的州是

$stateProvider.state('color', {
  url: '/web/foundation/color'}
});

我在web部分中有其他几个,设置类似,例如

$stateProvider.state('buttons', {
  url: '/web/foundation/buttons'}
});

所以web是网址的一部分,但不是州名。

组件本身是

 (function () {
  'use strict';
  angular.module('app').component('pbDsLeftnav', {
    bindings: {},
    controllerAs: 'ctrl',
    templateUrl: 'core/directives/pb-ds-leftnav.component.html',
    controller: function ($log, $rootScope, $state, $stateParams) {
      var _this = this;

      $rootScope.$state = $state;
      $rootScope.$stateParams = $stateParams;

      console.log($state.includes('web'));
    }
  });
})();

我尝试了各种版本的'web'**.web.**无济于事。它始终记录false。我如何匹配州的网址的一部分?

0 个答案:

没有答案