AngularJS - "全选"当前可见的项目

时间:2014-05-16 21:21:57

标签: angularjs list visible selectall

我目前正试图找出选择当前可见列表中所有项目的最佳方法。

我目前在我的作用域中有一个大型项目列表,其中已应用了分页,因此一次只能看到此列表中的一些项目。我有一个“全选”按钮,其中所需的行为是让它选择当前可见的所有项目 - 而不是列表中的所有项目。

我认为我可以通过使用ng-init指令将可见项添加到控制器中的列表来实现它,然后我可以使用该列表查看可见内容。对我而言,似乎必须有一个我错过的更好的解决方案。

有没有人有这个优雅的解决方案?

1 个答案:

答案 0 :(得分:6)

不是最清楚的问题,但我假设您正在使用某种过滤器的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的项目的特定子集。