Я хочу посмотреть событие фильтрации из моей директивы, когда происходит фильтрация на ngRepeat. Есть ли событие, которое возникает при фильтрации?Наблюдать за фильтрованием события в AngularJS - lazy loading images
Что я делаю, это осуществление ленивой загрузки изображений для списка миниатюр. Он работает, но когда я начинаю фильтровать, изображения, которые были вне видимости и видны после фильтрации, должны заменить атрибут ng-src.
Вот директива:
TemplateBrowser.directive('lazySrc', function() {
return function(scope, element, attrs) {
function replaceSrc() {
if (element.is(":in-viewport")) {
attrs.$set('ngSrc', attrs.lazySrc);
}
}
$(window).scroll(function() {
replaceSrc();
});
scope.$watch('filteredTemplates', function() {
replaceSrc();
});
};
});
HTML
<li ng-repeat="template in filteredTemplates = (templates | filterByCategory: selectedCategories | filter: searchFilter)">
<img ng-src="" lazy-src="{{template.cover.thumb.url}}" alt="">
</li>
В настоящее время я получаю эту ошибку:
Error: 10 $digest() iterations reached. Aborting!
TLDR: Вместо просмотра фильтрованной коллекции для изменений есть ли способ испустить какое-то фильтрующее событие, которое будет прослушивать директива? (фильтрация происходит через поле поиска и меню выбора категорий)
Извините за задержку, что проект на удержание на некоторое время. Кажется, что это работает, если у вас есть данные сразу. Я сталкиваюсь с проблемами, когда данные являются обещанием. Спасибо за толчок вперед! –
Привет, У меня такая же проблема, но мне нужно, чтобы она работала вот так. http://jsfiddle.net/f757U/ – egermano