angularjs – 对嵌套字段的ngTable过滤

前端之家收集整理的这篇文章主要介绍了angularjs – 对嵌套字段的ngTable过滤前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在ng-table中有一张发票清单,希望能够过滤嵌套属性. json看起来像这样;
[
  {
     id: 1,date: "20/03/2014",no: "1",client: {
       fullname: "ABC Catering"
     }
  }
]

我的观点看起来像这样

<table ng-table="tableParams" show-filter="true" class="table">
  <tr class='listing' ng-repeat="invoice in $data">
    <td data-title="'Invoice No.'" sortable="'no'" filter="{'no':'text'}">
      {{invoice.no}}
    </td>
    <td data-title="'Date'" sortable="'date'" filter="{'date':'text'}">
      {{invoice.date}}
    </td>
    <td data-title="'Client'" sortable="'client.fullname'" filter="{'client.fullname':'text'}">
      {{invoice.client.fullname}}
    </td>
    <td>
      <a href="/api#/invoices/{{invoice.id}}">Show</a>
      <a href="/api#/invoices/{{invoice.id}}/edit">Edit</a>
      <a href="" ng-confirm-click="destroy(invoice.id)">Delete</a>
    </td>
  </tr>
</table>

我想让client.fullname的过滤工作.如何过滤嵌套属性

更新

我找到了一个解决方法,我将嵌套字段放入非嵌套的JSON元素中,在上面的示例中,我创建了一个JSON [‘client_name’]元素并将其分配给rails模型中的client.fullname.然后过滤器工作,因为它没有嵌套.

仍在寻找一种方法,我可以做到没有这个工作.

您可以对要从JSON响应中筛选的任何内容使用 $filter.

@L_502_1@是如何在嵌套的JSON元素上进行过滤的人为例子.示例代码取自ng-table’s usage with filters的示例之一.

应用程序中需要注意的主要部分是

$scope.tableParams = new ngTableParams({
    page: 1,count: 10,filter: {
      'client': 'Bo' //Sample filter
    }
  },{
    total: data.length,getData: function($defer,params) {

      //Note the usage of built in angular filter
      //which is injected in the app

      var orderedData = 
                params.filter() ?
                     $filter('filter')(data,params.filter()) :
                        data;

      $scope.users = 
          orderedData.slice((params.page() - 1) * params.count(),params.page() * params.count());

      params.total(orderedData.length);
      $defer.resolve($scope.users);
    }
  });

Plunker按预期工作(如果我的要求正确).如果那不是你想要的东西,请大声喊叫. 原文链接:https://www.f2er.com/angularjs/143351.html

猜你在找的Angularjs相关文章