У меня есть список клиентов и заказы для каждого клиента. Это выглядит так:
<ul>
<li ng-repeat="customer in data.customes" | filter:customerFilterFn ">
{{customer.name}} {{??? total should change depending on nested FILTERED data???}}
<ul>
<li ng-repeat="order in customer.orders" | filter:orderFilterFn ">
{{order.id}} {{order.sum}}
</li>
</ul>
</li>
</ul>
Как видите, оба списка фильтруются своими собственными функциями (для заказов это диапазон дат).
Каков наилучший подход для получения полной суммы для отфильтрованного набора заказов?
Вы можете использовать $index
для директивы ng-repeat
. Таким образом вы получаете каждое значение заказа, а затем вы можете сохранить переменную $scope
для общей суммы клиента.
На самом деле вы можете использовать тот же orderFilterFn
для фильтрации заказов до ng-repeat. Что-то вроде этого: http://codepen.io/anon/pen/xwgYZj
Если производительность очень важна, вы можете фильтровать заказы только один раз: http://codepen.io/anon/pen/bVgLjB