使用ng-repeat过滤器而不隐藏过滤出的行

时间:2014-01-21 13:45:06

标签: javascript angularjs angularjs-ng-repeat angularjs-filter

我正在尝试执行以下操作: 1.使用ng-repeat创建一个html表。 2.使用输入字段为用户输入文本 3.当文本包含在一组特定单元格中时,相关的行将执行某种动画(让我们说改变它们的背景颜色)。

我已经使用了ng-repeat和filter选项,但是当我希望它们被呈现时,它会隐藏与标准不符的行。

这是我目前的代码:

<input id="filterPositions" ng-change="showFiltered()" type="search" ng-model="q.secret" placeholder="filter position..." />
<table> 
<tr ng-repeat="record in (filteredItems = ( body | filter:q:containsComparator ) ) track by record.positionId" ng-class="rowClass(record)">
<td>....</td>
<td>....</td>
<td>....</td>
<td>....</td>
</tr>
</table>

由于

1 个答案:

答案 0 :(得分:0)

在这种情况下,我认为不需要过滤器。您可以使用简单的ng-repeat和ng-class指令,例如

<tr ng-repeat="record in allrecords" ng-class="{'containscmp': isContainsComparator(record)}">
  <td>....</td>
  <td>....</td>
  <td>....</td>
</tr>

其中$ scope.isContainsCoparator(record)函数如果记录包含用户的输入则返回true