我正在使用AngularFire 0.8
我调用了以下函数来获取数组的实例。
var test = $firebase(new Firebase(URL)).$asArray();
当我在console.log“test”时,我得到以下内容(见截图)。
看起来test是一个数组。但是,当我执行“console.log(test [0])”时,我得到了未定义。
为什么不测试一个带有两个元素的数组,比如console.log(test)似乎表明它应该是???
帮助!!
答案 0 :(得分:4)
在加载数据之前,您最有可能在数组上调用console.log
。
要访问数组中的数据,您必须等到数据加载完毕。
要在代码中执行此操作,请使用以下构造:
var test = $firebase(new Firebase(URL)).$asArray();
test.$loaded().then(function(array) {
console.log(array[0]);
});
这个答案得到了比我想象的更多的支持。当您使用AngularJS和AngularFire时,使用console.log
调试加载的数据通常是一个不好的预兆。
AngularFire documentation on handling asynchronous operations现在必须说:
记录数据的最简单方法是使用Angular的
json
过滤器在视图中打印。
{{ data | json }}
AngularFire告诉Angular编译器何时加载完数据,因此无需担心何时可用。