如何控制angularFire中的加载数据

时间:2014-01-10 09:46:45

标签: javascript angularjs firebase angularfire

假设我有一个像这样的Firebase:

firebase tree

在工厂里我创建了一个模型:

.factory ('$model', function ($firebase) {
    var ref = new Firebase('https://xxxxx.firebaseio.com/admins/proefje');
    var model = $firebase (ref); // this loads all the data!
    model.loaded = false;

在我的控制器中,我使用的是模型:

.controller('DailyCtrl', function ($scope, $model) {
    $scope.title = 'Daily';
    $scope.data = $model.daily.data;

有两个问题:

  1. 当激活控制器时,数据仍在加载。我想我必须重新构建应用程序以解决这个问题。

  2. 由于部分数据非常大,我想控制加载的数据量。我不想一次加载所有数据。我尝试了limit()函数,但似乎没有在angularFire中实现。它不在the docs。我可以尝试在$ child()函数上加载部分,但我仍然会加载整个表。

  3. 对此有什么看法?

1 个答案:

答案 0 :(得分:1)

要解决(1),您可以使用ngRoute中的resolve()方法。这样,您可以等到$firebase(ref)的'已加载'事件在到达控制器之前触发。

AngularFire支持限制,只需将ref.limit()传递给$firebase方法即可。您也可以根据需要直接使用Firebase API。