2017-07-04 63 views
1

我有一個NG-重複創建表:AngularJS應用過濾器的JavaScript,而不是HTML

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

$filter,你可以注入並在你的控制器中使用它。

但是,如果你使用它,你將重新使用過濾器,所以有2個過濾器處理(2循環),所以在我看來這不是個好主意。

你已經得到了你的觀點,即過濾數組,你只需要將其分配給一個變量,在NG-重複,並使用括號不同的需要數組:

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

然後你可以使用{{filtered.length}}

+0

哇,我不知道這很容易,但我怎麼能在javascript中注入'dateFilter',因爲它有2個參數?$ filter是否修改了數組輸入? –

+0

它是一個過濾器,由app.filter()創建,例如:.filter('dateFilter',function(){return function(items,fromDate,toDa te){...}); 你可以使用$ filter('dateFilter')(array,fromDate,toDate) – Fetrarij

相關問題