【发布时间】:2014-05-30 11:07:26
【问题描述】:
我有一个数据列表,我想使用 Angular 的典型过滤进行搜索。
我有一个对象数组(以下几个之一):
{
vendor: 'Joan\'s Produce',
date: '2014-04-07',
total: 888.11,
note: 'insert note',
description: 'fresh produce',
terms: 'Net 10',
deliverer: 'Joe Truck',
paid: true
}
在<thead> 我有输入字段来搜索日期和总计字段。
<th style="vertical-align:text-top; width:250px;">Date<br />
<div class="input-group input-group-sm">
<input type="text" class="form-control" ng-model="dateQuery.date" />
<span class="input-group-addon"><button type="button" class="close" aria-hidden="true" ng-click="dateQuery=''">×</button></span>
</div>
</th>
表中的数据有自己的过滤器:
<tr ng-repeat="inv in invoices | filter:dateQuery | filter:amountQuery">
<td>{{inv.date | date:'MM/dd/yyyy'}}</td>...
<td>{{inv.total | currency}}</td>
</tr>
ng-repeat 中的过滤器格式化日期并将总计更改为货币。当我现在搜索这些过滤器时,它似乎只搜索 ng-repeat 从中提取的原始数据。
有没有办法以搜索过滤结果的方式构建输入过滤器?例如,我必须搜索 2014-04-07 的日期,并且无法添加总过滤器中的 $。
【问题讨论】:
-
您需要在控制器中预先过滤原始数据,以便
invoices包含您需要过滤的数据。或者创建一个自定义过滤器,从过滤器键中去除$。
标签: angularjs angularjs-ng-repeat angularjs-filter