JavaScript

超轻量级php框架startmvc

AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例

更新时间:2020-07-06 06:36:01 作者:startmvc
本文实例讲述了AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能。分享给大家供大家

本文实例讲述了AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能。分享给大家供大家参考,具体如下:


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>www.jb51.net ng-repeat去除重复</title>
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
 <p ng-repeat="x in items | unique:'id'">
 {{x.id}}---{{x.name}}
 </p>
</div>
<script>
 //AngularJs 自定义过滤器
 //1.使用过滤器,去除重复
 angular.module('common', []).filter('unique', function () {
 return function (collection, keyname) {
 console.info(collection);
 console.info(keyname);
 var output = [],
 keys = [];
 angular.forEach(collection, function (item) {
 var key = item[keyname];
 if (keys.indexOf(key) === -1) {
 keys.push(key);
 output.push(item);
 }
 });
 return output;
 }
 });
 var app = angular.module('myApp', ['common']);
 app.controller('myCtrl', function ($scope) {
 //$scope.items = [1, 2, 3,2];
 //当前unique 的过滤只针对,对象数组过滤
 $scope.items = [
 { id: 1, name: 'zhangsan' },
 { id: 2, name: 'lisi' },
 { id: 1, name: 'zhangsan' },
 ];
 });
</script>
</body>
</html>

运行结果:

PS:这里再为大家提供几款相关工具供大家参考使用:

在线去除重复项工具: http://tools.jb51.net/code/quchong

在线文本去重复工具: http://tools.jb51.net/aideddesign/txt_quchong

AngularJS Filter 自定义过滤器 控制 ng-repeat 去除重复