Подтвердить что ты не робот

Когда использовать $watch или ng-change в Angularjs

Когда следует использовать функции angular $watch и при использовании директивы ng-change angularjs? Для меня они оба могут сделать то же самое.

Существуют ли какие-либо различия или шаблоны использования между ними?

4b9b3361

Ответ 1

Они не то же самое, ясно. Один используется исключительно в контроллере; другая - директива на входном элементе.

Но даже в их применении они различаются.

Когда вы используете $watch, наблюдаемое выражение будет оцениваться в каждом цикле дайджеста, а если есть изменение, вызывается обработчик.

С ng-change обработчик вызывается явно в ответ на событие.

С $watch изменение может происходить из любого места: действие пользователя, функция контроллера, сервис - все вызовет обработчик.

С ng-change это изменение ограничивается действием пользователя на конкретном элементе ввода.

Следует также отметить, что ng-change работает только в сочетании с ng-model - другими словами, выражение ng-change оценивается только тогда, когда ngModel.$viewValue (см. ngModelController для дополнительной информации) изменяется, что обычно происходит в ответ на инициированное пользователем событие.