【问题标题】:Creating an infinite-scroll of meteor collection in angular-meteor在 angular-meteor 中创建无限滚动的流星集合
【发布时间】:2015-10-16 08:57:28
【问题描述】:

我正在尝试为我正在开发的从流星/mongo 集合中绘制对象的 angular-meteor 应用启用无限滚动。

我已经调整 step 12 of the angular-meteor tutorial 为我正在开发的应用程序使用分页,现在我想转换为无限滚动。我一直在尝试调整教程中的代码和 this example from ngInfiniteScroll 以用于我的目的。

我想我需要使用类似于教程的反应变量、自动运行等,但我真的不知道如何使其适应无限滚动。考虑下面的例子,我应该如何调整我的控制器以使用无限滚动,从数据库中绘制,并在生产中使用良好的 angular-meteor 实践?

演示 ngInfiniteScroll HTML:

  <div infinite-scroll='loadMore()' infinite-scroll-distance='2'>
    <img ng-repeat='image in images' ng-src='http://placehold.it/225x250&text={{image}}'>
  </div>

在控制器中演示 ngInfiniteScroll 函数:

$scope.images = [1, 2, 3, 4, 5, 6, 7, 8];
$scope.loadMore = function() {
  var last = $scope.images[$scope.images.length - 1];
  for(var i = 1; i <= 8; i++) {
    $scope.images.push(last + i);
  }
};

我在控制器中的 angular-meteor 分页代码:

$scope.page = 1;
$scope.perPage = 1;
$scope.sort = {'_id': -1};
$scope.orderProperty = '1';

$scope.images = $meteor.collection(function() {
  return Images.find({}, {
    sort : $scope.getReactively('sort')
  });
});

$meteor.autorun($scope, function() {
  $meteor.subscribe('images', {
       limit: parseInt($scope.getReactively('perPage')),
       skip: (parseInt($scope.getReactively('page')) - 1) * parseInt($scope.getReactively('perPage')),
       sort: $scope.getReactively('sort')
     }).then(function(){
       $scope.imagesCount = $meteor.object(Counts ,'numberOfImages', false);        
  });
});

$scope.pageChanged = function(newPage) {
  $scope.page = newPage;
}; 

【问题讨论】:

    标签: meteor angular-meteor nginfinitescroll


    【解决方案1】:

    请看这个基本的例子https://github.com/barbatus/ng-infinite-scroll。 每次执行 onLoadMore 时,控制器都会重新订阅。

    还有一个部署的演示http://ng-infinite-scroll.meteor.com

    确保这次angular.module('infinite-scroll').value('THROTTLE_MILLISECONDS', 500) 设置正确(不是很小)以避免非常频繁的请求。

    【讨论】:

    • 哇,谢谢你把它放在一起!实现起来比我预期的要简单得多,并且我让我的应用程序按照您的基本示例进行了第一次尝试。非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 2017-11-04
    相关资源
    最近更新 更多