点符号在AngularFire中显示为未定义

时间:2016-07-13 04:17:51

标签: angularjs firebase-realtime-database angularfire

{
"$id":"-KMVCUSAsz92c0Hp296i",
"$priority":null,
"aQuestion":"what is your favorite color",
"option1":{"option":"red","vote":1},
"option2":{"option":"blue","vote":2},
"option3":{"option":"green","vote":0},
"option4":{"option":"yellow","vote":0}
}

因此,使用点表示法从Firebase访问此对象,使用vm.data.$idvm.data.$priority返回正确的值。但是,使用vm.data.aQuestionvm.data.option1会产生undefined。我看过几个帖子,但没有人为我解决这个问题。有什么简单的我不理解吗?

2 个答案:

答案 0 :(得分:1)

好的,我想我可能已经弄明白了。我很幸运能够在阅读Surjeet关于使我的字段为空或空的事情之后不久找到这篇文章。

Cannot access Firebase object attributes. Value displayed as undefined ANGULARFIRE

由于Firebase值是异步加载的,因此未加载该值。在使用vm.data。$ loaded()之后,我能够通过点表示法检索。不确定这是否是最佳方式,但它确实有效。谢谢大家的帮助。

此外,如果任何阅读此内容的人有更好的方法来解决此问题,请告知我们。谢谢!

答案 1 :(得分:0)

试着看看你是否在代码中做了一些使你的对象字段为空的东西。

如果没有,

试试这个vm.data['aQuestion']