Как создать локальную переменную только с некоторыми фильтрами?

У меня есть ng-repeat вот так:

item in items | filter:myFilter | page:currentPage

Я хотел бы знать текущее количество элементов, которые filter:myFilter приводят к разбивке на страницы. Однако этот ответ приведет к применению обоих фильтров (и разбиение на страницы будет считать, что есть только одна страница результатов).

Как я могу условно применить фильтры к переменной, созданной в ng-repeat?


person SomeKittens    schedule 22.02.2015    source источник


Ответы (1)


Вполне возможно включить в скобки только некоторые фильтры. В приведенном выше случае вы можете сделать что-то вроде:

item in filteredItems = (items | filter:myFilter) | page:currentPage

Результат items | filter:myFilter будет присвоен filteredItems, который затем будет дополнительно отфильтрован page:currentPage.

Единственное, на что следует обратить внимание, это то, что filteredItems будет установлен в родительской области действия, созданной ng-repeat, поэтому вам нужно знать о коллизиях.

person SomeKittens    schedule 22.02.2015