Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
angular.module('app')
.filter('opened', ['$rootScope', '$cacheFactory', '$filter', function ($s, $cacheFactory, $filter) {
var
cache = $cacheFactory('openedFilter'),
keyGen = function () {
return angular.toJson(arguments);
};
return function (input, orderBy, reverse) {
var
cacheKey = keyGen(orderBy),
data = cache.get(cacheKey);
if (!data) {
data = $filter('orderBy')(input, orderBy, reverse||false); // Не уверен, поймет ли фильтр undefined :)
console.log('Применён фильтр «opened»');
cache.put(cacheKey, data);
}
return data;
}
}]);
Кэш для фильтров AngularJS с помощью Lo-Dash