我有一个Restangular系列,效果很好:
$scope.threads = Restangular.all('thread').getList({ limit: 10, offset: 0 }).$object;
但是当用户通过滚动到列表底部或单击“加载更多”按钮启动它时,我希望能够加载更多线程模型。如果我再次使用新的偏移量调用.getList(),它只会替换整个集合:
$scope.threads.getList({ limit: 10, offset: 10 });
有没有办法将返回的模型添加或推送到现有阵列而不是替换它们?
答案 0 :(得分:1)
你应该使用Restangular支持的Promises,当数据返回时,使用Array.push()将结果追加到$ scope.threads
这样的事情:
$scope.threads = Restangular.all('thread').getList({ limit: 10, offset: 0 }).then(function(resultThreads){
$scope.threads.push(resultThreads);
});
您需要跟踪自己的偏移量,这样每次滚动或点击“加载更多”时,您都会获得下一组。 它可以提高性能,如果你正在处理大量的数据,你可能需要考虑从数组的开头移除项目,同时追加到最后。