javascript - Restangular 无限滚动

标签 javascript angularjs single-page-application restangular

我有一个 Restangular 系列,效果很好:

$scope.threads = Restangular.all('thread').getList({ limit: 10, offset: 0 }).$object;

但我希望能够在用户通过滚动到列表底部或单击“加载更多”按钮启动它时加载更多线程模型。如果我用新的偏移量再次调用 .getList(),它只会替换整个集合:

$scope.threads.getList({ limit: 10, offset: 10 });

有没有办法将返回的模型添加或推送到现有数组而不是替换它们?

最佳答案

您应该使用 Restangular 支持的 Promises,当数据返回时使用 Array.push() 将结果附加到 $scope.threads

像这样:

$scope.threads = Restangular.all('thread').getList({ limit: 10, offset: 0 }).then(function(resultThreads){
$scope.threads.push(resultThreads);
});

您需要跟踪偏移量,以便每次滚动或单击“加载更多”时都能获得下一组。 它提高了性能,如果您正在处理大量数据,您可能需要考虑从数组的开头删除项目,同时附加到末尾。

Angular Promise

Restangular

关于javascript - Restangular 无限滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24068786/

相关文章:

javascript - 撕掉网络框架中的小部件?

jquery - 结合使用 jQuery 和 AngularJS?

javascript - 按钮 "Q"和 "F2"的 key 代码相同

javascript - THREE.js 网格顶点

javascript - 在运行时更改可观察的来源(rxjs)

javascript - Angular 和 IE8 中的 $http 请求被拒绝访问

javascript - AngularJS 和 SVG——在 <rect> 元素上使用 ng-click?

javascript - JavaScript 在执行 block 时会创建新的执行上下文吗?

javascript - AngularJS - 识别具有类的所有元素并添加属性,无需 jQuery

express - 处理 connect-history-api-fallback 和 Express 中的尾部斜杠