我目前正在尝试找出选择列表中当前可见的所有项目的最佳方法。
我目前在我的范围内有一个很大的项目列表,这些项目应用了分页,因此一次只能看到这个列表中的几个项目。我有一个“全选”按钮,期望的行为是让它选择当前可见的所有项目 - 不是列表中的所有项目。
我想我可以通过使用 ng-init 指令将可见项添加到控制器中的列表来实现它,然后我可以使用该列表来查看可见的内容。对我来说,似乎必须有一个我缺少的更好的解决方案。
有没有人对此有一个优雅的解决方案?
不是最清楚的问题,但我假设您正在使用带有某种过滤器的 ng-repeat,该过滤器将项目仅删除为您想要显示的项目。您可以在声明 ng-repeat 时设置一个内联范围变量并解决此问题。
因此,如果您的 html 如下所示:
<div ng-repeat="item in items | someFilter"></div>
您可以将其更改为:
<div ng-repeat="item in visibleItems = (items | someFilter)"></div>
然后你可以$scope.visibleItems
在你的控制器内部使用它,它只会包含通过你的someFilter
.