2017-10-18 61 views
0

我有菜单的组分:的角度成分不残留

<nav class="mxmls-mobile-nav"> 
    <button class="mobile-menu-btn visible-xs visible-sm " ng-click="asideVm.open = false"> 
    <i class="ion-android-close"></i> 
    </button> 
</nav> 
<a class="navbar-brand visible-xs visible-sm " ui-sref="layout.dashboard"> 
<img src="assets/images/logo/mxmls-logo.png" alt="" height="30" > 
</a> 
<nav class="mxmls-main-menu"> 
    <ul class="mxmls-menu"> 
    <li ui-sref-active="active" class="{{item.extraClass}}" ng-repeat="item in asideVm.menuItems" ng-click="asideVm.activateSubmenuParent(item)" ng-class="{'close-menu':item.submenu, 'active': item.activateSubmenu || item.active}"> 
     <a ui-sref="{{item.ui_state}}" ng-if="item.ui_state" ng-click="asideVm.changeType(); asideVm.removeSubmenuActiveState();" ng-bind-html="item.name"> 
     <!-- <i class="fa {{item.icon}} pull-left"></i> --> 
     <!-- <span class="selected"></span> --> 
     </a> 
     <a ui-sref-active="active" ng-if="!item.ui_state;" ng-click="item.submenu = !item.submenu;asideVm.saveStatusMenu()"> 
     <!-- <i class="fa {{item.icon}} pull-left"></i> -->{{item.name}} 
     <span class="icon-arrow pull-right"></span> 
     </a> 
     <ul class="mxmls-submenu" ng-if="item.sections" ng-class="{'hide':item.submenu}"> 
     <li ui-sref-active="active" ng-repeat="subItem in item.sections" ng-class="{'active': subItem.active}"> 
      <a ui-sref="{{subItem.ui_state}}" ng-click="asideVm.changeType(); asideVm.activateSubmenuParent(subItem);"> 
      <!-- <i class="fa {{item.icon}} pull-left"></i> -->{{subItem.name}} 
      <!-- <span class="selected"></span> --> 
     </a> 
     </li> 
    </ul> 
    </li> 
</ul> 
</nav> 

在asideVm.menuItems的元件具有ATTRIB“活性”用于焦点它时CLIC上,使用类“活动”(这里都行)。 但是,当点击像个链接:

<a href="/acm/venta/search" class="btn btn-base ng-binding" ui-sref="layout.acm.state.search({type:'venta'})">Iniciar análisis</a> 

类“活动”菜单丢失。我需要帮助:/

阵列“asideVm.menuItems”存储在cookie(和attrib“活动”太),我得到它时,页面加载。

回答

0

我找到了答案XD

第一,initialice为标志的变量,如果初始化:

vm.initialize = true; 

后:检查,以 “scope.watch”,如果 “URL /位置” 是改变;如果没有初始化,则使用函数“$ state.reload()”刷新组件/指令/控件:

$scope.$watch(function(){ 
    return $location.path(); 
     }, function(value){ 
     if(!vm.initialize) 
     { 
      console.log(value); 
      $state.reload(); 
     } 
     else 
     { 
      vm.initialize=false; 
     } 
     });