<html>
<head>
<script src="angular.min.js"></script>
<script type="text/javascript">
var arr = [1,2,3,4,5];
arr.splice(0,arr.length-3 );
console.log( arr.splice(0,arr.length-3 ) ); function windowScopedFilter (input,param2) {
var output = [];
console.log( param2 );
angular.forEach(input, function(v,k){
var org_d = v.name+v.phone ;
console.log( org_d ); switch(param2.length){
case 1:
if (org_d.indexOf( param2[0] )!=-1) {
output.push(v);
}
break;
case 2:
if (org_d.indexOf( param2[0] )!=-1 && org_d.indexOf( param2[1] )!=-1 ) {
output.push(v);
}
break;
case 3:
if (org_d.indexOf( param2[0] )!=-1 && org_d.indexOf( param2[1] )!=-1&& org_d.indexOf( param2[2] )!=-1 ) {
output.push(v);
}
break;
} });
return output;
}
var myapp = angular.module('MyFilterApp', []);
myapp.filter('myfilter', function() {
return function(input, param1) {
console.log("------------------------------------------------- begin dump of custom parameters");
console.log("input=",input);
console.log("param1(string)=", param1);
var args = Array.prototype.slice.call(arguments);
console.log("arguments=", args.length,args);
//没有传参
if (3<=args.length) {
console.log("param2(string)=", args[2]);
param2 = args[2];
}
//传1个参数
if (4<=args.length) {
console.log("param3(string)=", args[3]);
param3 = args[3]; return window[args[args.length-1]](input,args.splice(1,args.length-3 ) );
}
//传两个参数
if (5<=args.length) {
console.log("param4(bool)=", args[4]);
param4 = args[5];
args.splice(0,args.length-3 );
return window[args[args.length-1]](input,args.splice(1,args.length-3 ) );
}
console.log("------------------------------------------------- end dump of custom parameters");
// filter //传三个参数
if (6<=args.length) {
// return window[args[5]](input,args[2]);
return window[args[args.length-1]](input,args.splice(1,args.length-3 ) );
}
return input;
};
});
myapp.controller('MyFilterController', ['$scope', function($scope) {
$scope.friends = [{name:'John', phone:'555-1276'},
{name:'Annie', phone:'800-BIG-MARY'},
{name:'Mike', phone:'555-4321'},
{name:'Adam', phone:'555-5678'},
{name:'David', phone:'555-8765'},
{name:'Mikay', phone:'555-5678'}];
}]);
</script>
</head>
<body ng-app="MyFilterApp">
<div ng-controller="MyFilterController">
<table id="searchTextResults">
<tr><th>Name</th><th>Phone</th></tr>
<tr ng-repeat="friend in friends |myfilter:'Mike':'555': true:'windowScopedFilter'">
<td>{{friend.name}}</td>
<td>{{friend.phone}}</td>
</tr>
</table>
</div>
<hr>
</body>
</html>

上面的例子可以直接拿取用,目前最多筛选三个参数

参考文档:

http://www.tuicool.com/articles/ueUZBv

http://www.cnblogs.com/xing901022/p/4290102.html

http://www.codeceo.com/article/angularjs-filter-usage.html

http://www.oschina.net/translate/angularjs-filter-creating-custom-filter

最新文章

  1. mac常用的命令
  2. 老项目的#iPhone6与iPhone6Plus适配#LaunchImage适配
  3. adb命令安装apk,和安装问题daemon not running. starting it now on port 5037解决
  4. python学习之最简单的获取本机ip信息的小程序
  5. css教程如何修改留言板程序
  6. spring源码学习之:xml标签扩展配置例子
  7. 怎么给OCR文字识别软件设置正确的扫描分辨率
  8. eclipse gradle 自动打包
  9. [转] 设计模式 -- Facade
  10. 关于express4不再支持body-parser
  11. Chrome设计文档-多进程架构
  12. HashSet的排序
  13. Django 1.9 admin 使用suit 小记
  14. javascript 之数据类型
  15. mvc-dispatchar-servlet.xml文件报错
  16. 使用 Docker 一步搞定 ZooKeeper 集群的搭建
  17. JVM内存详解-阅读笔记
  18. web技术应用分享
  19. excel函数2
  20. javaean(web作业)

热门文章

  1. Linux命令(007) -- systemctl
  2. selenium + python实现截图并且保存图片
  3. 239 Sliding Window Maximum 滑动窗口最大值
  4. 聊聊MyBatis缓存机制
  5. 01按照官方步骤编译NanoPiM1Plus的Android
  6. python实现qq机器人qqbot
  7. Farseer.net轻量级开源框架 入门篇:查询数据详解
  8. java protostuff 序列化反序列化工具
  9. document.write() 和 document.writeln区别
  10. iphone6,iphone6 plus适配,旧项目出现黑线问题