我使用隐式方法检索数据对象:
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
,所以我回到显式方法,让不同的firebase只发送数据到站点,而不是数据绑定和相互覆盖:
var rawData = angularFireCollection(url+segment);
在这里我发现了为什么我一开始选择隐式:typeof有一个参数,我可以告诉firebase我是在调用字符串,数组,对象等等。我甚至查看了angularfire.js,发现如果没有给出参数,默认情况下它会返回到将其识别为数组。
现在,我肯定要转向显式方法(也就是说,如果angular2.0没有提供拯救),并且重构我的firebase json以适应仅数组策略并不是什么大不了的事情,但肯定有显式调用对象的选项,或者我错过了什么?
我不完全清楚的问题是什么-与angularfirecall,你当然可以检索对象很好。例如,在捆绑的聊天应用(https://github.com/firebase/angularFire/blob/gh-pages/examples/chat/app.js#L5):
)中$scope.messages = angularFireCollection(new Firebase(url).limit(50));
每条消息都存储为一个对象,具有push()
生成的唯一密钥。
我也很好奇你在使用隐式方法时发现了什么问题。我们真的希望在angularFire的下一个迭代中解决这些问题!