筛选嵌套 JSON 中的数据

Filter Data in nested json

本文关键字:数据 JSON 嵌套 筛选      更新时间:2023-09-26

我的角度控制器如下 - 如何过滤嵌套数据,如第一行 JSON -

<script>
  var myApp = angular.module('myApp', ['angular.filter']);
  function VersionFilterCtrl($scope) {  
    $scope.limit=6;
    $scope.orders = [
      { id:1, customer:[{ name: 'John1', id: 10 },{ name: 'John2', id: 100 }] },
      { id:2, customer: { name: 'William', id: 20 } },
      { id:3, customer: { name: 'John', id: 10 } },
      { id:4, customer: { name: 'William', id: 20 } },
      { id:5, customer: { name: 'Clive', id: 30 } }
    ];
  }
</script>

和我的网页

<div ng-app="myApp">
  <div ng-controller="VersionFilterCtrl">
    <input type='text' name='name' ng-model='search.customer.name'>
    <input type='text' name='name' ng-model='search.customer.id'>
    <li ng-repeat="order in orders| filterBy: ['customer.name']: search.customer.name| filterBy: ['customer.id']: search.customer.id">
      {{order.id}}{{order.customer.name}}
    </li>
  </div>
</div>

JSFIDDLE 示例

您在如何设置搜索模型以匹配要过滤的数据的结构时正确地处理了这一点,即 search.customer.namesearch.customer.id .

您需要做的就是应用 search 对象作为过滤器:

<li ng-repeat="order in orders | filter: search">
   {{order.id}} | id: {{order.customer.id}}  name: {{order.customer.name}}
</li>

普伦克

其他一些问题:

  • 没有filterBy(除非您创建自己的)
  • 您的第一个订单记录有一系列客户 - 这是故意的吗?这个 plunker 处理这种情况