使用angularFire Collection查询对象?

时间:2013-06-07 21:30:01

标签: angularjs firebase angularfire

我使用隐式方法检索数据对象:

setData = function(segment){
  var url = 'https://myFireBase.firebaseio.com/';
  var rawData = angularFire(url+segment,$rootScope,'data',{});
  rawData.then(function(data){
    // sorting and adjusting data, and then broadcasting and/or assinging
  }
}

这段代码位于从不同位置调用的服务中,通过开发阶段,它可能大约在100到150之间,所以我从控制器进入服务,但现在firebase数据绑定显然会超过 - 写了不同的segment,所以我转回到显式的methid,让不同的firebases只将数据发送到站点而不是数据绑定并相互覆盖:

var rawData = angularFireCollection(url+segment);

就在那里,我发现了为什么我首先选择了隐含的东西:有一个关于typeof的参数,如果我正在调用一个字符串,一个数组,一个对象等,我可以告诉firebase。我甚至看过angularfire .js并看到如果没有给出参数,如果退回到默认情况下将其标识为数组。

现在,我肯定会转向显式方法(也就是说,如果angular2.0没有得到救赎),重构我的firebase jsons以适应仅限数组的策略并不是什么大不了的事,但肯定有一个明确调用对象的选项,或者我错过了什么?

1 个答案:

答案 0 :(得分:1)

我不清楚问题是什么 - 使用angularFireCollection,你当然可以很好地检索对象。例如,在捆绑的聊天应用(https://github.com/firebase/angularFire/blob/gh-pages/examples/chat/app.js#L5)中:

$scope.messages = angularFireCollection(new Firebase(url).limit(50));

每条消息都存储为一个对象,其中包含由push()生成的唯一密钥。

我也很好奇您在应用程序增长时使用隐式方法时遇到的问题。我们真的希望在下一次angularFire迭代中解决这些问题!