$watch
Вы можете «наблюдать» за свойством компонента с помощью магического метода $watch
. Например:
В приведённом выше примере при нажатии кнопки и изменении значения open
сработает предоставленный обратный вызов и console.log
выдаст новое значение. Загляните в консоль браузера, чтобы убедиться.
Вы можете просматривать глубоко вложенные свойства, используя «точечную» нотацию:
При нажатии <button>
для foo.bar
будет установлено значение «bob», а затем оно будет выведено в консоли.
Получение «старого» значения
$watch
отслеживает предыдущее значение отслеживаемого свойства. Вы можете получить к нему доступ, используя необязательный второй аргумент обратного вызова, например:
Глубокое наблюдение
$watch
автоматически отслеживает изменения на любом уровне, но вы должны иметь в виду, что при обнаружении изменения наблюдатель вернёт значение наблюдаемого свойства, а не значение изменённого подсвойства.
При нажатии кнопки foo.bar
будет установлен в значение «bob», а {bar: 'bob'} {bar: 'baz'}
будет выведено в консоль (новое и старое значение).
Изменение свойства «наблюдаемого» объекта в качестве побочного эффекта обратного вызова $watch
приведёт к бесконечному циклу и в конечном итоге к ошибке.