突出显示 Angular JS 中的过滤行
Highlight filtered rows in Angular JS
>我有一个需要突出显示重复值的数组。这就是我到目前为止所拥有的..
.HTML
<tr ng-repeat="x in names | unique: 'names'" >
<td> {{ x }} </td>
</tr>
<style>
.duplicate{
background: yellow;
}
</style>
控制器:
angular.module('myApp', []).controller('nameCtrl', function($scope) {
$scope.names = [
'Bob',
'Dan',
'Philip',
'Philip',
];
});
编辑:在上面的示例中,"Philip"
将被突出显示并具有duplicate
类
你可以这样实现它:
<div ng-app="MyApp">
<div ng-controller="MyController">
<table>
<tr ng-repeat="name in names | unique">
<td ng-class="{ 'duplicate': names.indexOf(name) !== names.lastIndexOf(name) }">{{name}}</td>
</tr>
</table>
</div>
</div>
这会将 duplicate
类应用于indexOf
返回的值与lastIndexOf
不同的元素。这只能发生在数组中多次的项目上。
JSFiddle可在此处获得。
如果您不想过滤掉重复项,可以使用以下内容:
<div ng-app="MyApp">
<div ng-controller="MyController">
<table>
<tr ng-repeat="name in names track by $index">
<td ng-class="{ 'duplicate': names.indexOf(name) !== names.lastIndexOf(name) }">{{name}}</td>
</tr>
</table>
</div>
</div>
我认为这应该有效。
<tr ng-repeat="(key, count) in names | count" >
<td ng-class="{your-highlight-class: count > 1 }"> {{ key }} </td>
</tr>
app.filter('count', function ( ) {
return function (collection) {
var result = {};
collection.forEach( function( elm ) {
if(!result[elm]) {
result[elm] = 0;
}
result[elm]++;
});
return result;
}
}]);
相关文章:
- 如何在D3.js中绘制地图投影上的点,并使用范围滑块过滤数据
- angular js多个复选框过滤多级JSON
- 过滤react.js中的记录
- 自定义过滤淘汰js observableArray
- 根据范围过滤角度.js数组
- 角度JS,将过滤条件添加到ng重复
- 使用Angular js ng repeat指令过滤json对象
- Angular JS-过滤ng重复
- 如何过滤sails.js中填充的值
- 根据用户输入的leaflet.js过滤标记
- backbone.js搜索过滤系统[Structure]
- 在Angular.js中通过检查作用域变量进行过滤
- 如何在Leaflet.js中按属性过滤TopoJSON功能
- 如何在vis.js中动态过滤链接
- D3.js~如何过滤包含某些值/单词的数据值
- Ember.js 2如何过滤现有模型
- Angular Js过滤控制器中的嵌套数组
- 通过多列和多个值过滤angular js数组
- 如何在 Angular js 中按日期过滤数据
- 用于过滤JS代码的python regex