2014-10-11 2 views
1

Я хочу прослушать изменения, сделанные для определенного дочернего объекта. Для примера. У меня есть данные, хранящиеся в firebase, какAngularFire: Как смотреть на ребенка от объекта?

users: { 
    user1:{ 
    info:{ name: 'Jon', age:'21'}, 
    otherThings:{} 
    }, 
    user2:{ 
    info:{ name: 'Mark', age:'20'}, 
    otherThings:{} 
    } 
} 

Теперь я могу слушать изменения в user1 по

$scope.userObj = $firebase(userRef).$asObject(); 
$scope.userObj.$watch(function() { 
    console.log("data changed!"); 
}); 

Но есть ли способ слушать изменения только тогда, когда ее ребенок т.е. $ scope.userObj .name меняется?
Он должен быть только с userObj, userObj.child ('name') или что-то в этом роде.

ответ

1

Команда углового $ watch принимает точечную нотацию. Просто смотрите соответствующее поле demo:

$scope.$watch('userObj.info.name', callback); 

Подробнее в $scope docs. Это довольно много Угловая 101.

Но, скорее всего, это неправильный подход. Каждый раз, когда вы начинаете пытаться смотреть и управлять данными в контроллере, вы, вероятно, пошли по неверному маршруту. Пусть просмотр обрабатывает и выполняет преобразования данных либо в сервисе, либо в случае с AngularFire, используя преобразования данных, такие как $ extendFactory.

Смежные вопросы