Я пытаюсь показать последние объявления, у меня есть некоторые объявления, сохраненные в Firebase, и вы хотите отображать добавленные данные, они хранятся с свойством timestamp.
Если я создаю ng-repeat без limitTo, он работает так, как ожидалось, но когда я использую limitTo или даже limitToFirst, он работает не так, как ожидалось, он корректно отображает количество элементов, которые я собирался отображать в начале, но он пропускает некоторые из них, и когда я нажимаю кнопку loadmore, он загружает больше объявлений и отображает те, которые должны быть там с самого начала.
Обратите внимание, что в нем должны отображаться две объявления с датами 27-го октября, но она отображает только одну.
Здесь plunkr с демо: https://plnkr.co/edit/Ae8rlbD8Uob5TrAHrivz?p=preview
app.controller('publicCtrl', function($scope, $firebaseArray) {
$scope.loadmore = 6;
$scope.latest = "-Addate";
var listads = new Firebase("https://milocal.firebaseio.com/Users/Ovalle");
$scope.listads = $firebaseArray(listads);
$scope.loadmoreads = function(){
//console.log("Cargando anuncios");
$scope.loadmore += 2;
$scope.listads = $firebaseArray(listads);
console.log($scope.loadmore);
}
});
в HTML:
ng-repeat="ads in filteredAds = (listads | limitTo: loadmore | orderBy: latest)"
Надеюсь, кто-то может объяснить мне, что я делаю неправильно.
Благодарю.
Я изменил ваш Plunkr на это:
var app = angular.module('plunker', ["firebase"]);
app.controller('publicCtrl', function($scope, $firebaseArray) {
$scope.loadmore = 1;
$scope.latest = "-Addate";
var listads = new Firebase("https://milocal.firebaseio.com/Users/Ovalle");
var query = listads.orderByChild("-Addate").limitToFirst($scope.loadmore);
$scope.listads = $firebaseArray(query);
$scope.loadmoreads = function(){
$scope.loadmore += 2;
var query = listads.orderByChild("-Addate").limitToFirst($scope.loadmore);
$scope.listads = $firebaseArray(query);
}
});
Сначала он загружает 2 элемента. Затем, когда вы нажимаете кнопку "Загрузить больше", она загружается 4. Затем 6 и т.д.
Обновлено /forked plunkr: https://plnkr.co/edit/MUMerL?p=preview
$firebaseArray(Firebase("https://milocal.firebaseio.com/Users/Ovalle"))
загрузит всех детей из этого места. Можете ли вы указать на документацию, где определены этиlimitTo
иorderBy
? Таким образом, я могу понять, как это должно работать.listads | orderBy: latest | limitTo: loadmore
.