我将数据结构更改为数组。无论如何,这是另一个过滤好友对象的实现。
angular.module('filters',['utils']) .filter('friendFilter', function(utils){ return function(input, query){ if(!query) return input; var result = []; angular.forEach(input, function(friend){ if(utils.compareStr(friend.name, query) ||utils.compareStr(friend.phone, query)) result.push(friend); }); return result; }; });
这样仅对对象进行一次迭代,然后按
name和比较
phone,就可以这样调用。
<li ng-repeat="friend in friends | friendFilter:query">
我
compareStr在另一个模块中定义了,但您实际上并不需要这样做。
angular.module('utils', []) .factory('utils', function(){ return{ compareStr: function(stra, strb){ stra = ("" + stra).toLowerCase(); strb = ("" + strb).toLowerCase(); return stra.indexOf(strb) !== -1; } }; });
不要忘记将
filters模块注入您的应用程序
angular.module('app',['filters'])
这是完整的示例:http :
//jsbin.com/acagag/5/edit
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)