我正在尝试迭代从我的Firebase获取的firebaseObject
和firebaseArray
,但它们看起来不像普通的javascript objects
和arrays
。
我的数据以下列形式存储
'mainKey': {
'key1':'value1',
'key2':'value2'
},
'mainkey2': {
'key3':'value3'
}
我已尝试过以下代码
var firebaseRef = new Firebase("https://<my-app>.firebaseio.com/);
var fbArray = $firebaseArray(firebaseRef);
var fbObject = $firebaseObject(firebaseRef);
for(var i=0;i<fbArray.length;i++){
console.log(fbArray[i]);
}
console.log(fbObject);
console.log(fbObject.mainkey);
console.log(fbArray.length);
这在控制台中提供了以下输出
Object { $$conf={...}, $id="test", $priority=null, more...}
undefined
0
虽然返回的对象具有mainkey
属性,但我无法访问它。为什么会发生这种情况?我应该如何迭代它们?
答案 0 :(得分:0)
您可以尝试for..in
循环来迭代对象。
以下是一个例子:
for (var key in fbObject) {
console.log(fbObject[key]); // You could use this method with all objects in JS
}
答案 1 :(得分:0)
这里是您需要了解的信息
$ firebaseArray服务采用Firebase参考或Firebase查询和 返回一个JavaScript数组,其中包含所提供的Firebase中的数据 参考。请注意,此后数据将无法立即使用 检索它是一个异步操作。 您可以使用$ loaded()承诺在数据加载时收到通知。
https://www.firebase.com/docs/web/libraries/angular/api.html#angularfire-firebasearray
fbArray.$loaded(function() {
//here you can iterate over your object
});