2013-05-17 23 views
2

我填充Firebase对象以具有200个键/值对,然后使用ng-repeat显示它。相关的代码是:如何将对象中的键/值的angularFire限制数限制为100?

<ul> 
    <li ng-repeat='(n, inst) in db.instances'>Instance {{n}}: {{inst.status}}</li> 
</ul> 

<script type='text/javascript'> 
    angular.module('blah', ['firebase']).controller(
    'BlahCtrl', function BlahCtrl($scope, angularFire) { 
     angularFire('https://blahblahblah.firebaseio.com/', $scope, 'db', {}); 
    } 
) 
</script> 

加载页面似乎删除了前100个键/值对。

如何防止此行为?

+0

我看到这一点,并重温了一把讨论表明一个使用angularFireCollection代替angularFire在这种情况下,。虽然我找不到那个讨论主题。所以,用一粒盐吧。 – Kato

回答

6

您可以将URL或Firebase参考实例传入angularFire()angularFireCollection()。因此,请先创建一个Firebase实例,然后将limit()设置为您想要的值,然后将其传入,而不是直接链接。

该文档声明此版本的limit()返回Firebase实例,并通过快速测试显示它的工作原理。在致电limit()之前,您还必须先致电startAt()

我有这样的工作:

angular.module('blah', ['firebase']).controller(
    'BlahCtrl', function BlahCtrl($scope, angularFire) { 
    var ref = new Firebase('https://blahblahblah.firebaseio.com/').startAt().limit(200); 
    angularFire(ref, $scope, 'db', {}); 
    } 
)