ng-repeat с функцией limitTo с начальным индексом

Допустим, у меня есть массив [1,2,3,4,5,6,7], мне нужно разбить его, чтобы у меня всегда было 3 объекта, т.е. [1,2,3], [4,5, 6] , [5,6,7] при нажатии на следующую страницу. Как добиться этого, используя начальный индекс и функцию limitTo angularjs?


person shekar rao    schedule 18.10.2017    source источник


Ответы (1)


Проверка длины массива в вашем обработчике ng-click была бы тем, как я бы это сделал.

Что-то вроде следующего:

$scope.items = [1, 2, 3, 4, 5, 6, 7];

$scope.startFrom = 0;

$scope.nextPage = function () {
    if ($scope.startFrom + 3 > $scope.items.length - 3) {
        $scope.startFrom = $scope.items.length - 3;
    }
    else {
        $scope.startFrom += 3;
    }
};

А потом:

ng-repeat="item in items | limitTo: 3: startFrom"

Если у вас есть какие-либо проблемы с startFrom, вам может потребоваться проверить свою версию Angular. См. этот пост для получения дополнительной информации.

person Chris Mack    schedule 18.10.2017