Negli esempi angularFire mostra come ottenere una raccolta di oggetti da Firebase.AngularFire single object
app.controller('ctrl', ['$scope', '$timeout', 'angularFireCollection',
function($scope, $timeout, angularFireCollection) {
var url = 'https://ex.firebaseio.com/stuff';
$scope.col = angularFireCollection(url);
}
]);
Che dire di un solo oggetto?
Ho provato qualcosa di simile:
fb.child('stuff/'+id).on('value', function(snapshot) {
$scope.obj = snapshot.val();
console.log('hey got the value')
console.log(snapshot.val())
});
non sembra funzionare. La console emette correttamente il valore dell'oggetto ma il controllore non si aggiorna.
Per quanto riguarda il motivo per cui il tentativo non ha funzionato: quando si modifica $ scope al di fuori di una funzione angolare (come in quella callback di Firebase), è necessario attivare manualmente un $ digest con $ scope. $ Apply(). C'è una spiegazione abbastanza buona qui: http://jimhoskins.com/2012/12/17/angularjs-and-apply.html – bennlich