在对象映射而非AngularJS中的数组上进行过滤

在对象映射而非AngularJS中的数组上进行过滤,第1张

对象映射而非AngularJS中的数组上进行过滤

我将数据结构更改为数组。无论如何,这是另一个过滤好友对象的实现。

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



欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/5646458.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存