AngularJs 中对象内的引用数据

Reference data within object in AngularJs

我试图在使用 Firebase 从工厂返回的对象中引用子数据,但我很困惑。我可以成功获取我想要的用户对象 ($scope.user),但我似乎无法引用其中的数据(例如 $scope.user.name)- 一切 returns 未定义。

app.factory('Data', ['$firebase', function(){
    var ref = new Firebase('https://something.firebaseio.com/users');
    return {
        refUser: function(id){
            return $firebase(ref.child(id)).$asObject();
        }
    }
}]);

app.controller('MainCtrl', ['Data', function(Data){
    $scope.user = Data.refUser(123); // 123 = user ID
    console.log($scope.user); // Returns user object successfully (containing 'name' key)
    console.log($scope.user.name); // Return undefined
}]);

我错过了什么?我什至不太确定问题出在哪里:Angular、Firebase 或简单的 javascript.

因为refUser还在打电话,还没有接完。 $scope.user 的引用存在,因为它已经被创建。如果您将 console.log 更改为 console.log(JSON.stringify($scope.user));你会看到它实际上是空的。 Chrome 开发工具保留调用完成后填充的引用。