假设我有一个像这样的Firebase:
在工厂里我创建了一个模型:
.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;
有两个问题:
当激活控制器时,数据仍在加载。我想我必须重新构建应用程序以解决这个问题。
由于部分数据非常大,我想控制加载的数据量。我不想一次加载所有数据。我尝试了limit()函数,但似乎没有在angularFire中实现。它不在the docs。我可以尝试在$ child()函数上加载部分,但我仍然会加载整个表。
对此有什么看法?
答案 0 :(得分:1)
要解决(1),您可以使用ngRoute中的resolve()方法。这样,您可以等到$firebase(ref)
的'已加载'事件在到达控制器之前触发。
AngularFire支持限制,只需将ref.limit()传递给$firebase
方法即可。您也可以根据需要直接使用Firebase API。