AngularJs-单击添加活动类的最佳实践(ng重复)

我想在列表中单击时添加活动类,我尝试了以下代码,但它在我的所有项目上添加了活动类:/:

HTML:

<div class=“filters\u ct”ng controller=“selectFilter”>
<ul>
<li ng repeat=“过滤器中的过滤器”ng click=“选择(项目)”ng class=“{sel:item==selected}”>
<span class=“过滤器\u ct\u状态”&gt&lt/span>
{{filters.time}
&lt/李>
&lt/ul>
&lt/部门>

Js:

var过滤器=[
{
“filterId”:1,
“时间”:“最后24小时”,
},
{
“filterId”:2,
“时间”:“全部”,
},
{
“filterId”:3,
“时间”:“最后一个小时”,
},
{
“filterId”:4,
‘时间’:‘今天’,
},
{
“filterId”:5,
‘时间’:‘耶斯特日’,
}
]; 
函数selectFilter($scope){
$scope.items=['filters'];
$scope.selected=$scope.items[0];
$scope.select=功能(项){
$scope.selected=项目;
};
}

请给我一些帮助

谢谢

最好的解决方案是通过angulars$index将其作为目标,这是数组中的对象索引/位置

HTML

<div ng app='app'class=“filters\u ct”ng controller=“selectFilter”>
<ul>
<li ng repeat=“过滤器中的过滤器”ng click=“选择($index)”ng class=“{sel:$index==selected}”>
<span class=“过滤器\u ct\u状态”&gt&lt/span>
{{filter.time}
&lt/李>
&lt/ul>
&lt/部门>

JS/Controller

var-app=angular.module('app',[]);
应用程序控制器('selectFilter',函数($scope){
变量过滤器=[
{
“filterId”:1,
“时间”:“最后24小时”,
},
{
“filterId”:2,
“时间”:“全部”,
},
{
“filterId”:3,
“时间”:“最后一个小时”,
},
{
“filterId”:4,
‘时间’:‘今天’,
},
{
“filterId”:5,
‘时间’:‘耶斯特日’,
}
]; 
$scope.filters=过滤器;
$scope.selected=0;
$scope.select=函数(索引){
$scope.selected=索引;
};
});

JSFIDDLE

发表评论