Я использую следующую директиву, чтобы узнать, прокрутил ли пользователь нижнюю часть страницы - 150px и установить переменную области видимости, которая прослушивается, и загружается следующая страница. Это работает нормально.
Меня беспокоит то, что scope.$apply() вызывается несколько раз. Мне нужно вызвать $apply(), чтобы директива заработала, но я не уверен, что вызов ее несколько раз может вызвать проблемы.
Есть предположения?
Спасибо.
myMod.directive('scrollDetection',
function () {
return {
restrict: 'AE',
link: function postLink(scope, element, attrs) {
var last_scroll_top = 0;
element.bind("scroll", function() {
var scroll_top = this.scrollTop,
scroll_height = this.scrollHeight,
height = this.offsetHeight,
offset = 150;
if (scroll_top > last_scroll_top) {
if ((scroll_top + height + offset) >= scroll_height) {
scope.requestPage = true;
scope.$apply();
}
}
last_scroll_top = scroll_top;
});
}
};
});