假设我正在构建无限卷的文章。
我的文章ID通过网址传递:
var id = $stateParams.id;
我希望startAt
我的Firebase集合中的索引和limit
10:
var limit = 10;
var articlesRef = new Firebase("https://example.firebaseio.com/articles").startAt(null, id).limit(limit);
$scope.articles = $firebase(articlesRef);
在 inifite-scroll 指令触发的loadMore()
函数中,我想追加更多内容:
$scope.loadMore = function(){
var limit = limit + 10;
//Obviously this isn't going to work.
$scope.articles = $firebase(articlesRef.startAt(null, id).limit(limit));
}
loaded
函数,因此我们无法连接回调中的value
。我如何附加到现有结果集,以便它看起来不像articles
“重新加载”?
答案 0 :(得分:2)
这有点棘手 - 附加到新结果集的最佳方法是分离$ firebase返回的内容以及视图中显示的内容。
在这种情况下,我们假设$ scope.articles是显示的内容。主要的是将$ firebase()的返回值分配给 $ scope.articles以外的,并依赖于'changed'事件而不是'loaded'。然后,只需在需要加载新集时复制内容。
var articlesRef = new Firebase("https://example.firebaseio.com/articles").startAt(null, id).limit(limit);
$scope.articles = {};
var obj = $firebase(articlesRef);
obj.$on('change').function() {
// For each property in obj, set $scope.articles.
};