在Ionic中按多个字段过滤 [英] Filter by multiple fields in Ionic

查看:169
本文介绍了在Ionic中按多个字段过滤的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经进入了半完整的Ionic Cordova项目,我想通过product_name或product_code搜索搜索功能,它目前只通过产品名称进行过滤。

I've jumped into a half complete Ionic Cordova project, I want the search function to search via product_name or product_code, it currently only filters via product name.

<input type="text" ng-model="search.search"  placeholder="Scan/Enter product" ng-change="setFocus()"/>

<div class="odd" ng-if="focus" ng-repeat="mydata in data | filter:{product_name:search.search, product_code:search.text}">

TIA

推荐答案

你应该创建自定义 orFilter

angular.module('app', []).controller('ctrl', function($scope){
  $scope.data  = [
    {product_name:'Prod1', product_code:'1112'},
    {product_name:'Prod2', product_code:'2223'},
    {product_name:'Prod3', product_code:'3334'}
  ]
}).filter('orFilter', function(){
  return function(data, props, search){
    if(!search)
      return data;
    
    search = search.toLocaleLowerCase();
    return data.filter(function(x){ 
      for(var prop of props)
        if(x[prop].toLocaleLowerCase().indexOf(search) != -1)
         return true;
      return false;
    });
  }
})

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js">
</script>

<div ng-app='app' ng-controller='ctrl'>
  <input type='text' ng-model='search' ng-init='search="2"'/>
  <ul>
    <li ng-repeat='item in data | orFilter: ["product_name", "product_code"]: search'>
      {{item | json}}
    </li>
  </ul>
</div>

这篇关于在Ionic中按多个字段过滤的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆