Бесконечная прокрутка дублирует строки

Я 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)

Другие вопросы по тегам