当任何子视图处于活动状态时,AngularJs导航栏父视图应处于活动状态

时间:2016-03-08 20:44:56

标签: angularjs typescript angular-ui-router navbar

我想实现第一个视图是基于一些子视图而主视图是抽象的 - 只重定向到第一个子视图。我实现了两个用于导航的导航栏。一个用于导航普通视图,另一个用于仅导航主视图。我想知道当其中一个家庭子视图处于活动状态时,如何设置主导航栏在主页上处于活动状态。

顶部栏导航栏的代码。当家庭的任何子视图处于活动状态时,主页按钮应处于活动状态(home.a,home.b)。目前Home永远不会活跃。

dozer
每当我在某些子视图上正确按钮处于活动状态时,

子视图导航栏的工作正常

<ul class="nav navbar-nav">
    <li ui-sref-active="active"><a ui-sref="home">Home</a></li> //here i can use home.a but when i will navigate to home.b it ll be inactive
    <li ui-sref-active="active"><a ui-sref="about">About</a></li>
    <li ui-sref-active="active"><a ui-sref="contact">Contact</a></li>
</ul>

此路线已关闭,当子viev活动时选择主导航栏,但是当我将主视图更改为联系时,我无法返回主页,因为它是抽象视图:

<ul class="nav nav-pills nav-stacked">
  <li ui-sref-active="active"><a ui-sref="home.a">Wspolne</a></li>
  <li ui-sref-active="active"><a ui-sref="home.b">Moje</a></li>
</ul>

2 个答案:

答案 0 :(得分:0)

解决方案是更改活动条件以引用状态对象,并将ui-sref更改为子路径的href:

<li ng-class="{active: ctrl.$state.includes('home')}"><a href="/">Home</a></li>

这很有效但不优雅。有更好的解决方案吗?

答案 1 :(得分:0)

嗨,也许迟到但试试这个;)

<div ui-sref-active="{'active': 'admin.**'}">
  <a ui-sref-active="active" ui-sref="admin.roles">Roles</a>
</div>