Бесконечная прокрутка дублирует строки
Я ngInfiniteScroll зависимость для AngularJS Framework. https://sroze.github.io/ngInfiniteScroll/
Это назначено на мой стол.
<table infinite-scroll="loadMore()" ng-controller="LastBookingsCtrl">
Вот функция loadMore в моем файле JavaScript.
$scope.loadMore = function() {
$http.get("last.php?start=" + $scope.currentLoadIndex)
.then(function (res) {
if (res.data.length > 0) {
var count = 0;
for (var i = 0; i < res.data.length; i++) {
$scope.lastBookings.push(res.data[i]);
count++;
}
$scope.currentLoadIndex += count;
}
});
};
И я думаю, что мой запрос MySQL в load.php
правильно, но я не уверен.
$start = $_GET['start'];
$query = "SELECT * FROM `performs` ORDER BY id DESC LIMIT ".$start.", 20";
Это дает мне 20 строк из моего mysql начала с переменного числа.
Но всякий раз, когда я прокручиваю вверх и вниз, он как-то дублируется.
1 ответ
Решение
Я считаю, что вы получаете один и тот же результат каждый раз, потому что вы $scope.currentLoadIndex
не корректно обновляется с then()
, Попробуйте установить следующий индекс равным длине текущего списка:
$http.get("last.php?start=" + $scope.lastBookings.length)