2013-04-29 38 views
9

AngularFire örneklerinde, bir nesne koleksiyonunun firebase'den nasıl alındığını gösterir.AngularFire tek bir nesne

app.controller('ctrl', ['$scope', '$timeout', 'angularFireCollection', 
    function($scope, $timeout, angularFireCollection) {  
    var url = 'https://ex.firebaseio.com/stuff'; 
    $scope.col = angularFireCollection(url); 
    } 
]); 

Sadece tek bir nesne nedir?

fb.child('stuff/'+id).on('value', function(snapshot) { 
    $scope.obj = snapshot.val(); 
    console.log('hey got the value') 
    console.log(snapshot.val()) 
    }); 

çalışmak görünmüyor:

böyle bir şey denedik. Konsol, nesne değerini doğru şekilde verir ancak kontrol cihazı güncellenmez.

+1

Denemenizin neden çalışmadığıyla ilgili olarak: Açısal işlev dışındaki kapsamı değiştirirken (Firebase geri aramada olduğu gibi), $ kapsamı $ kapsamıyla manuel olarak tetiklemeniz gerekir. $ Apply(). Burada oldukça iyi bir açıklama var: http://jimhoskins.com/2012/12/17/angularjs-and-apply.html – bennlich

cevap

9

deneyin düzenli angularFire hizmetini kullanarak ve tek bir nesne tipini belirten: 4 argüman

app.controller('ctrl', ['$scope', '$timeout', 'angularFire', 
    function($scope, $timeout, angularFire) {  
    var url = 'https://ex.firebaseio.com/stuff'; 
    angularFire(url, $scope, "obj", ""); 
    } 
]); 

Not ("" dizesini demektir, ayrıca boolean, sayı nesneleri ve diziler kullanabilirsiniz).

+0

"Hata: tür uyuşmazlığı" – Harry

+0

URL'deki tek bir nesne bir dizgidir mi? "Https://ex.firebaseio.com/stuff" adresinde olduğu gibi, aynı türden bir nesneye sahip olmak için 4. argümanı veya orada depolamayı planladığınız şeyi değiştirmeniz gerekir. Ayrıca kütüphanenin en son sürümünü kullandığınızdan emin olun: http://firebase.github.io/angularFire/angularFire.js – Anant

+0

Bu bir nesne, tırnakları parantez ile değiştirdikten sonra çalıştı. Bu API benim için hiçbir anlam ifade etmiyor olsa da, başlangıçta son nesneyi "nesne" koymaya çalıştım. Bunun için bazı belgeler var mı? Tek nesneler ve koleksiyonlar için aynı API'yı standartlaştırmaya/izin vermeye ne dersiniz? Bu yüzden birden fazla sağlayıcıyı yüklemek zorunda kalmayız (doğru terminolojiyi kullanarak umarım)? – Harry

İlgili konular