我需要在使用“搜索”之类的过滤器过滤 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 不会为了节省性能而重绘这些行,但这会阻止我实现此功能。
最佳答案
你能添加你的javascript吗? Controller 和highlightNeedle 的东西?
仅考虑您过滤器的名称,我认为您没有将其用于其用途。
如果你想突出显示你的单元格,你应该使用 ng-class 或 ng-style 之类的东西。请参阅https://docs.angularjs.org/api/ng/directive/ngClass
一个例子是让一个 css 类“myClass”执行突出显示的操作并将其添加到您的 ng-class="{myClass:check(prop)}"
其中“check”是在返回 true/false 的范围内声明的函数。
请注意,如果您的表非常大,您可能会遇到一些麻烦,因为 Angular 会监视更改并为每个 {{}} 创建范围。
关于javascript - 强制 ngRepeated 元素在过滤后重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35151481/