我尝试显示最新广告,我将一些广告保存到Firebase中,并希望显示添加的持续时间,它们存储时间戳属性。
如果我创建没有 limitTo 的ng-repeat,它会按预期工作,但是当我使用 limitTo 甚至 limitToFirst 时,它不会#39;按预期工作,它正确显示我将在开始时显示的项目数量,但它会跳过其中一些项目,当我点击loadmore按钮时,它会加载更多广告并显示应该是从一开始就有。
请注意,它应显示两个日期第27个 oct 的广告,但它只会显示一个。
这是一个带有演示的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)"
希望有人能解释我的错误。
感谢。
答案 0 :(得分:0)
我把你的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,等等。
更新/分叉的plunkr:https://plnkr.co/edit/MUMerL?p=preview