Решение ниже для комментариев.
Проблема. Мой метод loadMore() запускается в каждом прокрутке контейнера.
Значение: loadMore() выполняется на каждом прокрутке мыши родительского контейнера (infinite-scroll-parent="true"
)
Желаемый результат: для получения loadMore() выполняется только тогда, когда infinScrollDistance соответствует его условиям, а не любому тинному прокрутку, который я делаю.
Мой код очень вдохновлен demo_basic и demo_async.
Мое приложение - это фотогалерея. Я загружаю фотографии по вызову ajax и заполняю их в ретранслятор директивы эскиза. Я отключу ng-Infinite-Scroll при инициализации контроллера и включите его при успешном завершении.
<div class="thumbnails grid__item page--content">
<div id="gallery" class="unstyled-list"
infinite-scroll='loadMore()'
infinite-scroll-disabled='album.busy'
infinite-scroll-parent="true"
infinite-scroll-immediate-check="false"
infinite-scroll-distance='2'>
<my-photo-directive ng-repeat="photo in photos"></my-photo-directive>
</div>
</div>
У моего кофейного кода нет сюрпризов. Логика неважная, потому что, если я помещаю простой console.log, проблема все равно возникает.....
$scope.album.busy = true
$scope.loadMore = ->
$scope.$apply ->
$scope.album.busy = true
console.log('loadMore() been executed here')
Моя директива миниатюр одинакова. Никаких сюрпризов, моментальные снимки последних фотографий не заполняются на повторителе, я включаю компонент.
app.directive 'myPhotoDirective', ['$window', ($window) ->
return {} =
....
link: (scope, element, attrs) ->
if scope.$last
scope.album.busy = false
Я понятия не имел, чего я не вижу или делаю неправильно. Я надеюсь, что кто-то будет здесь, чтобы помочь мне.
Спасибо.