Javascript 在AngularJs中迭代对象时,如何在ng repeat中使用过滤器

Javascript 在AngularJs中迭代对象时,如何在ng repeat中使用过滤器,javascript,angularjs,Javascript,Angularjs,绑定到模型的搜索字段 <input type="text" ng-model="searchVoucher" /> 在ng repeat中迭代的对象 <li ng-repeat="(k,f) in {'r':4,'e':5,'t':6,'y':7,'c':8} | filter:searchVoucher">{{f}}</li>

绑定到模型的搜索字段

<input type="text" ng-model="searchVoucher" />

在ng repeat中迭代的对象

<li ng-repeat="(k,f) in {'r':4,'e':5,'t':6,'y':7,'c':8} | filter:searchVoucher">{{f}}</li>
  • {{f}
  • 如何基于对象的键或val进行过滤,或者val也可以是具有属性的对象


    请帮助

    请看一下这个。 这里配置了相同的过滤器
    searchVoucher
    ,根据
    filterParam
    根据键或值过滤输入。 从
    li
    ref传递给控制器
    tst
    的关键字
    this
    。 此
    tst
    控制器具有文本框的模型

    在过滤器内部,我访问
    filterParam
    ,并使用它来过滤输入的json。

    试试看

    <li ng-repeat="(k,f) in {'r':4,'e':5,'t':6,'y':7,'c':8} | searchfilter:searchVoucher">{{f}}</li>
    

    演示:

    需要什么样的输出才能根据searchVoucher值筛选出元素。假设searchconcert=4,则在DOMS中只显示一个
  • 。从你的小提琴中学到了新东西;)。然而,阿伦给出的解决方案正是我所需要的。再次感谢。谢谢你的帮助,这正是我需要的。谢谢感谢您的及时回复和优雅的解决方案。
    app.filter('searchfilter', function() {
      return function(input, term) {
        var regex = new RegExp(term || '', 'i');
        var obj = {};
        angular.forEach(input, function(v, i){
          if(regex.test(v + '')){
            obj[i]=v;
          }
        });
        return obj;
      };
    });