Ответ 1
$watchCollection
будет наблюдать за свойствами одного объекта и уведомлять вас об изменении одного из них.
$watchGroup
однако наблюдает за группой отдельных выражений часов.
Они не являются функционально эквивалентными. $watchGroup
может использоваться, когда вы хотите посмотреть множество выражений, которые должны реагировать на один и тот же обратный вызов - это могут быть отдельные выражения, предназначенные для разных объектов. Это можно использовать для просмотра 'foo'
, 'foo.bar'
и 'baz.qux'
. Это три разные цели: foo
, foo
bar
и свойство baz
qux
, но все они делегируются одному и тому же обработчику.
В отличие от этого $watchCollection
будет отображаться только один объект. Это делает его лучше для объекта, который может сильно изменить его свойства (например, наш собственный $scope
). В соответствии с примерами названия мусора, чтобы достичь того же, что и выше, вы хотели бы смотреть только foo
и baz
, но вы будете уведомлены о любых изменениях в foo
и baz
(в отличие от просто уведомление об изменениях на foo
, foo.bar
и baz.qux
.