开发者社区> 问答> 正文

AngularJS自定义过滤器功能

在我的控制器内部,我想过滤一个对象数组。这些对象都是一个映射,可以包含字符串和列表

我尝试使用$filter('filter')(array, function)格式,但是我不知道如何访问函数内部数组的各个元素。这是显示我想要的片段。

$filter('filter')(array, function() { return criteriaMatch(item, criteria); }); 然后在中criteriaMatch(),我将检查每个单独的属性是否匹配

var criteriaMatch = function(item, criteria) { // go thro each individual property in the item and criteria // and check if they are equal } 我必须在控制器中完成所有这些操作,并编译列表列表,然后在范围内进行设置。因此,我$filter('filter')只需要以这种方式访问。到目前为止,我在网上发现的所有示例都在函数内部进行了静态条件搜索,它们没有通过条件对象并针对数组中的每个项目进行测试。 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 13:49:27 547 0
1 条回答
写回答
取消 提交回答
  • 您可以像这样使用它:http : //plnkr.co/edit/vtNjEgmpItqxX5fdwtPi?p=preview

    就像您发现的那样,filter接受谓词功能可以从数组中逐项接受。因此,您只需要根据给定来创建谓词函数criteria。

    在此示例中,criteriaMatch是一个函数,该函数返回与给定匹配的谓词函数criteria。

    模板:

    {{ item }}
    范围:

    $scope.criteriaMatch = function( criteria ) { return function( item ) { return item.name === criteria.name; }; };

    2020-02-08 13:49:38
    赞同 展开评论 打赏
问答分类:
Go
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Angular从零到一 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载