nie chcę użyć jQuery roztworowi nieskończony othe r facet wysłany jako moja aplikacja mobilna nie korzysta z JQuery .. Nie ma sensu ładowanie JQuery tylko po to.
W każdym razie znalazłem js skrzypce w czystym js, który podsyca ten problem.
HTML
<div id="fixed" when-scrolled="loadMore()">
<ul>
<li ng-repeat="i in items"></li>
</ul>
</div>
JavaScript
function Main($scope) {
$scope.items = [];
var counter = 0;
$scope.loadMore = function() {
for (var i = 0; i < 5; i++) {
$scope.items.push({
id: counter
});
counter += 10;
}
};
$scope.loadMore();
}
angular.module('scroll', []).directive('whenScrolled', function() {
return function(scope, elm, attr) {
var raw = elm[0];
elm.bind('scroll', function() {
if (raw.scrollTop + raw.offsetHeight >= raw.scrollHeight) {
scope.$apply(attr.whenScrolled);
}
});
};
});
Źródło: http://jsfiddle.net/vojtajina/U7Bz9/
To rozwiązanie nie zajmuje się zmianą rozmiaru strony (przez użytkownika) ani wielkością div, więc można pozostawić puste miejsce, nawet jeśli do dodania jest więcej elementów "oczekujących". – mmaclaurin
Wykorzystuje to również Angular, podobnie jak nieskończona przewijana odpowiedź, którą dał EpokK. – Guinn