强制ngRepeated元素在过滤后重绘

时间:2016-02-02 10:54:37

标签: javascript angularjs angularjs-ng-repeat angular-filters

我需要在过滤ngRepeat - ed数组之后用“搜索”过滤器重绘行,以突出显示“针”。

我为解析后的文本编写了一个过滤函数,但是一旦完成过滤(像一个搜索),它就不会触发。

<tr ng-repeat="transaction in collection | orderBy:sortExp:sortReverse | filter:multiFilter()">
  <td ng-repeat="(prop,value) in transaction" title="{{prop}}">
    {{value | filter:highlightNeedle(prop)}}
  </td>
</tr>

我假设Angular没有重新绘制这些行以节省性能,但这阻止了我实现此功能。

1 个答案:

答案 0 :(得分:0)

你可以加你javascript吗?控制器和highlightNeedle的事情?

考虑到你过滤器的名称,我认为你并没有将它用于它的制作过程。

如果你想高亮你的细胞,你应该使用类似ng-class或ng-style的东西。见https://docs.angularjs.org/api/ng/directive/ngClass

一个例子是拥有一个css类&#34; myClass&#34;做突出显示的东西,并添加到您的     纳克级=&#34; {MyClass的:CHECK(丙)}&#34;

其中&#34;检查&#34;是在范围内声明的函数,返回true / false。

请注意,如果您的表格非常大,则可能会遇到一些问题,因为angular会监视更改并为每个{{}}创建范围。