我想在列表中单击时添加活动类,我尝试了以下代码,但它在我的所有项目上添加了活动类:/:
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状态”></span>;
{{filters.time}
</李>;
</ul>;
</部门>;
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状态”></span>;
{{filter.time}
</李>;
</ul>;
</部门>;
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