我是新来的角。我正在尝试制作几个类别的菜单。用角度突出显示一个菜单元素
这些类别被定义为<li>...</li>
标签。当用户选择一个类别时,我会突出显示它(并且取消选中之前选定的元素)。
到目前为止,我使用的ng-repeat
/ng-click
的组合:
<ul class="nav nav-sidebar">
<li data-ng-repeat="category in categories" class="menu-element ng-scope" data-category="{{category.category}}" data-ng-click="onClick($event)">
<a href="#" class="glyphicon glyphicon-{{category.icon}}"> {{category.text}}</a>
</li>
</ul>
而且,所述控制器:
var myApp = angular.module('myApp', []);
myApp.controller('categoryListCtrl', function ($scope) {
$scope.onClick = function(event) {
//What must I do here?
console.log(event);
};
$scope.categories = [
{'category': 'home', icon :'home', text: 'Home'},
{'category': 'news', icon :'comment', text: 'News'},
{'category': 'brands', icon :'tower', text: 'Brands'},
[...]
]
}
当<li>
元件上的用户点击,则执行功能$scope.onClick
。
在这里,我想为选定的<li>
添加一个“高亮”类,并从先前选择的<li>
中删除“高亮”类。
看着console.log(event)
,我看到event.toElement
是被点击的<a>
。
仍看着console.log(event)
,我看到我可以通过event.toElement.offsetParent
获得<li>
元素,但这是DOM操作,我被告知它在控制器中是邪恶的。
问题:我把the ng-click
指令的<li>
元素,为什么会在event.toElement
的<a>
元素?
问题:什么是“最有角度”的方式来突出显示/取消突出显示元素?
看起来不错!我在读这个。 – 2015-02-08 14:14:30
工程就像一个魅力,谢谢! – 2015-02-08 14:17:20
我最近在我自己的应用程序中使用了相同的方法,它由一系列项目组成,当它们的排序顺序发生变化时,正确选择的项目保持如此状态 – mindparse 2015-02-08 14:19:04