В примерах angularFire показано, как получить коллекцию объектов из firebase.Единый объект AngularFire
app.controller('ctrl', ['$scope', '$timeout', 'angularFireCollection',
function($scope, $timeout, angularFireCollection) {
var url = 'https://ex.firebaseio.com/stuff';
$scope.col = angularFireCollection(url);
}
]);
Как насчет одного объекта?
Я пытался что-то вроде этого:
fb.child('stuff/'+id).on('value', function(snapshot) {
$scope.obj = snapshot.val();
console.log('hey got the value')
console.log(snapshot.val())
});
, кажется, не работает. Консоль выводит значение объекта правильно, но контроллер не обновляет.
Что касается того, почему ваша попытка не сработала: при изменении $ scope вне угловой функции (например, в обратном вызове Firebase) вам необходимо вручную запустить $ digest с $ scope. $ Apply(). Здесь есть довольно хорошее объяснение: http://jimhoskins.com/2012/12/17/angularjs-and-apply.html – bennlich