javascript - 强制 ngRepeated 元素在过滤后重绘

标签 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 不会为了节省性能而重绘这些行,但这会阻止我实现此功能。

最佳答案

你能添加你的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/

相关文章:

javascript - 向上/向下移动时在窗口中保留所选选项

javascript - 如何在 AngularJS 中正确清理?

javascript - Angular 'track by' 不适用于 $resource 数组

javascript - Angular ng-repeat 导致闪烁

javascript - 立即提供反馈的 HTML 表单

javascript - gulp watch 在任务期间并不总是观看

javascript - 如何在 Vanilla Ionic 4 中使用 ionic 路由器

javascript - 在 Angular JS 中处理模式最简单的方法是什么?

angularjs - 指令不能 '' 需要 :ngRepeat'

JavaScript 变量在 HTML 音频控件中不起作用?