【问题标题】:Filter by multiple fields in Ionic在 Ionic 中按多个字段过滤
【发布时间】:2018-07-08 11:27:00
【问题描述】:

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

<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

【问题讨论】:

    标签: angularjs cordova ionic-framework filter


    【解决方案1】:

    您应该创建自定义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>

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 1970-01-01
      • 2017-01-23
      • 2020-11-12
      • 2012-03-13
      • 2021-10-20
      • 1970-01-01
      • 2020-03-17
      • 2021-12-30
      相关资源
      最近更新 更多