W przykładach angularFire pokazuje, jak uzyskać kolekcję obiektów z bazy Firebase.Pojedynczy obiekt AngularFire
app.controller('ctrl', ['$scope', '$timeout', 'angularFireCollection',
function($scope, $timeout, angularFireCollection) {
var url = 'https://ex.firebaseio.com/stuff';
$scope.col = angularFireCollection(url);
}
]);
Co z jednym obiektem?
Próbowałem coś takiego:
fb.child('stuff/'+id).on('value', function(snapshot) {
$scope.obj = snapshot.val();
console.log('hey got the value')
console.log(snapshot.val())
});
nie wydaje się działać. Konsola wyświetla poprawnie wartość obiektu, ale kontroler nie aktualizuje się.
Co do tego, dlaczego twoja próba nie zadziałała: podczas modyfikowania $ scope poza funkcją kątową (jak w tym wywołaniu zwrotnym Firebase), musisz ręcznie uruchomić $ digest za pomocą $ scope. $ Apply(). Tutaj jest całkiem dobre wytłumaczenie: http://jimhoskins.com/2012/12/17/angularjs-and-apply.html – bennlich