我有一个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 - 无限滚动的矩形,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24068786/

10-11 13:19