这可能是一个菜鸟问题,因为我无法在stackoverflow中找到任何类似的问题。我正在编写一个以firebase为后端的ionic-angularjs应用程序。我是firebase snapshot.val()方法返回的数据快照,这是数据在我的chrome控制台中显示的方式(附图)
var tmp = {};
CurrUser.getEventdesc(eventid).then(function (result) {
tmp = result;
console.log(tmp.Description);
});
CurrUser是一个工厂,getEventdesc是工厂中的一个功能。 getEventdesc函数如下所示:
getEventdesc: function(id) {
var deferred = $q.defer();
ref.child('Events').orderByChild('Eventid').equalTo(id).on('value', function (snapshot) {
event = snapshot.val();
console.log(event);
deferred.resolve(event);
});
return deferred.promise;
}
现在我正在尝试访问“说明”'我的angularjs控制器中的tmp.Description属性,但我得到了一个未定义的'错误。如果有人能帮助我访问对象属性,我将不胜感激。谢谢你的时间。
更新2:
var tmp = {};
var newtemp = {};
CurrUser.getEventdesc(eventid).then(function (result) {
tmp = result;
for (var itemID in tmp) {
newtmp = tmp[itemID];
};
console.log(newtmp.Description);
});
此致
答案 0 :(得分:0)
你正在重新调整整个firebase对象,而不仅仅是请求的id,试试这个:
event = snapshot.val();
deferred.resolve(event[id]);