我有以下代码:
<li class="parentElement">
<ul>
<li class="highlight"><a href="">Item 1</a></li>
<li><a href="">Item 2</a></li>
<li><a href="">Item 3</a></li>
</ul>
</li>
这里的<ul>
是导航菜单中的一个下拉列表。活动元素/<li>
具有类突出显示...当类突出显示在一个列表元素中时,我需要将类活动添加到parentElement。
我尝试使用ng-class,但没有成功。
更新
ng-class="{'active':hasHighlight}“不能与我的代码一起工作,它将永久添加active,因为突出显示始终存在于ng-class中:
<li class="parentElement">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"></a>
<ul class="dropdown-menu">
<li ng-class="{ highlight: isActive('/item1')}"><a href="${createLink(uri: '/#/item1')}"></a></li>
<li ng-class="{ highlight: isActive('/item2')}"><a href="${createLink(uri: '/#/item2')}"></a></li>
<li ng-class="{ highlight: isActive('/item3')}"><a href="${createLink(uri: '/#/item3')}"></a></li>
</ul>
</li>
发布于 2014-02-13 20:25:05
关于使用ng-class
,你是对的。
<li class="parentElement" ng-class="{'active': hasHighlight}">
<ul>
<li class="highlight"><a href="">Item 1</a></li>
<li><a href="">Item 2</a></li>
<li><a href="">Item 3</a></li>
</ul>
</li>
在控制器中,无论何时将类highlight
添加到列表元素,都要将$scope.hasHighlight
更改为等于true
。当它被移除时,将其更改为false
。
发布于 2014-02-14 08:36:10
我找到了类似这样的东西:
ng-class="{ active: isAnyActive() }"
和控制器:
$scope.isAnyActive = function() {
return ['/item1','/item2','item3'].indexOf($location.path()) > -1;
};
https://stackoverflow.com/questions/21764606
复制