AngularJS在javascript中应用过滤器而不是html

时间:2017-07-04 03:58:50

标签: javascript html angularjs

我有一个ng-repeat来创建表:

ng-repeat="equipment in equipments | filter: equipmentFilter | dateFilter: dateStart: dateEnd | pageFilter: currentPage * pageSize | limitTo: pageSize"

我需要得到:

(equipments | dateFilter: dateStart: dateEnd | filter: equipmentFilter).length

更新分页功能中的总页数。我试过了:

ng-init="equipmentsForPaging = (equipments | dateFilter: dateStart: dateEnd | filter: equipmentFilter)"

但它根本不起作用,我也不认为使用ng-init是一个好主意。那么有没有在javascript中执行此操作?

1 个答案:

答案 0 :(得分:1)

$filter,您可以在控制器中注入并使用它。

但如果您使用它,您将重新使用过滤器,因此有2个过滤处理(2个循环)所以在我看来这不是一个好主意。

您已经在视图中获得了过滤后的数组,只需将其分配给变量,在ng-repeat中,并使用括号来区分所需的数组:

ng-repeat="equipment in filtered = (equipments | filter: equipmentFilter | dateFilter: dateStart: dateEnd) | pageFilter: currentPage * pageSize | limitTo: pageSize

然后您可以使用{{filtered.length}}