【发布时间】:2013-08-29 16:23:45
【问题描述】:
我有一个要在 ng-grid 中显示的对象数组。每行都有一个布尔属性isVisible。在 ng-grid 中,我只想显示 isVisible 为真的行。其他行应完全隐藏。
我尝试使用rowTemplate 并将ng-show 数据绑定到isVisible。这隐藏了行的内容,但将实际行留在原处,显示一个空行。
我尝试过使用 filterOptions,但无法找出执行此类过滤的正确语法。我找不到任何关于如何设置它的好文档。
我什至尝试通过在ng-repeat=\"row in renderedRows\" 上添加过滤器来修改 ng-grid 源中的 gridTemplate,但我也没有让它工作。
我想我可以通过临时删除行来修改数组本身,但我不希望这样做,因为我必须能够再次显示行(它实际上是我正在做的扩展器,应该隐藏/显示子行)
【问题讨论】:
-
你看过 SO 16546678 (stackoverflow.com/questions/16846678/…) 吗?它不是真正隐藏,而是通过重新创建 gridOptions.data 对象过滤掉行。还有一个 plunker:plnkr.co/edit/2RXlNq?p=preview
-
@AardVark71 我想避免拥有数据对象的多个副本。一方面,stackoverflow.com/questions/17847119/… 暗示该解决方案存在内存泄漏。
-
您不需要数据的另一个副本,只需要一个单独的数组。同样,您还可以绑定到过滤数据的函数,而不是 $scope.data,而是绑定到 $scope.filteredData()。每当 Angular 运行摘要时都会调用它。
标签: angularjs filtering master-detail ng-grid