limitTo(angularjs)或limitToFirst(firebase)没有按预期工作

时间:2016-01-24 04:31:01

标签: angularjs firebase angularfire

我尝试显示最新广告,我将一些广告保存到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)"

希望有人能解释我的错误。

感谢。

1 个答案:

答案 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