0
我試圖引用使用Firebase的工廠返回的對象中的子數據,但我很難過。我可以成功獲取我想要的用戶對象($scope.user
),但似乎無法引用其中的數據(例如$scope.user.name
) - 所有內容都返回未定義狀態。AngularJs中的對象內引用數據
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。
也許你的user.name === undefined? – alexpods
'$ asObject'返回一個promise,它在將來的某個時刻將包含用戶的屬性。我會寫一個簡短的答案(對類似問題有很多參考)。沒關係,看起來馬修伯格只是打敗了我。 :-) –
請參閱http://stackoverflow.com/questions/27049342/asynchronous-access-to-an-array-in-firebase/27050749#27050749和http://stackoverflow.com/questions/26604472/firebase-angularfire -child-asobject-give-properties-undefined/26673597#26673597 –