AngularJS无法打印出Firebase数据

时间:2017-08-11 07:12:44

标签: javascript angularjs firebase firebase-realtime-database angularfire

我有一个使用Firebase和AngularFire的AngularJS网络应用。我注意到在控制器中,可以从给定的数据库工厂(它返回对所有数据的引用)打印所有数据库数据。但是,当打印比根更深的数据时,该sub_data是未定义的。为什么会这样?

function DatabaseFactory($firebaseObject) {
     // Bad practice to get all DB data, but just for purpose of this example
     return $firebaseObject(firebase.database().ref());
 }

function MyCtrl(DatabaseFactory) {
     var data = DatabaseFactory;
     console.log(data); // Works correctly - prints all database data, even sub data
     console.log(data.user_profile); // Prints 'undefined' in console
 }

Firebase中的数据结构是用户和订单的简单JSON结构:

/root
    -/ user_profile
    -/ user_order
    -/ order

console.log(data)的输出:

FirebaseObject {
    $$conf: ...
    $id: ...
    $priority: ...
    user_profile: ...
    user_order: ...
    order: ...
}

但是,如果我单独打印出每个属性,它就不会打印出任何数据库对象:

var propValue;
for(var propName in data) {
    propValue = data[propName];
    console.log(propName, propValue);
}

输出:

$$conf
$id
$priority
$save
$remove
$loaded
$ref
$bindTo
$watch
$destroy
$$updated
$$error
$$scopeUpdated
$$notify

0 个答案:

没有答案