Files
standardnotes-app-web/app/assets/javascripts/directives/functional/infiniteScroll.js
2020-03-23 19:59:55 -05:00

22 lines
553 B
JavaScript

/* @ngInject */
export function infiniteScroll() {
return {
link: function(scope, elem, attrs) {
const offset = parseInt(attrs.threshold) || 0;
const e = elem[0];
scope.onScroll = () => {
if (
scope.$eval(attrs.canLoad) &&
e.scrollTop + e.offsetHeight >= e.scrollHeight - offset
) {
scope.$apply(attrs.infiniteScroll);
}
};
elem.on('scroll', scope.onScroll);
scope.$on('$destroy', () => {
elem.off('scroll', scope.onScroll);;
});
}
};
}