Но есть одна проблема, которую я пока не нашел решения.
Записи для создания список сортируется по возрастанию.
В Angular это вызывает проблему: список HTML строится вверх, в то время как полоса прокрутки остается в том же положении, которое вызвало событие бесконечной прокрутки, что вызывает событие срабатывать снова и снова и снова, пока пользователь не прокрутит вручную.
То, что событие запускается до тех пор, пока триггер бесконечной прокрутки находится в области просмотра, является желательным поведением, поскольку в зависимости от высоты области просмотра и предпочтений пользователя, нельзя гарантировать, что элементов всегда будет достаточно, чтобы изначально заполнить всю страницу. Новые элементы должны загружаться непрерывно, пока страница не заполнится.
Пример StackBlitz
https://stackblitz.com/edit/angular-infinite- Scroll-intersectionobserver
Прокрутите до самого конца списка, чтобы вызвать событие бесконечной прокрутки. Он сохранит полосу прокрутки в том же положении и вызовет событие при построении списка вверх.
В функции генерированияItems() есть вызов sortItems() . Когда вы отключите этот вызов, поведение прокрутки бесконечного списка прокрутки работает правильно. Новые элементы, добавленные в список, приводят к увеличению списка и выталкивают триггер бесконечной прокрутки за пределы области просмотра.
Пример CodePen
Когда я реализую та же логика бесконечной прокрутки с использованием встроенного JavaScript с jQuery, она работает должным образом, даже когда результаты отсортированы.
https://codepen.io/mw- 108/pen/ExqPKmG
Здесь триггер бесконечной прокрутки всегда выталкивается из области просмотра при обновлении списка. Это то, чего я ожидаю.
Вопросы
Я делаю что-то не так в Angular?
Что может Мне нужно воспроизвести тот же результат, который я вижу в примере JavaScript/jQuery в Angular?
Подробнее здесь: https://stackoverflow.com/questions/790 ... dless-loop