Некоторые преимущества использования ng-change перед onchange в AngularJS:
- Скорость обработки. 1 Ng-change обрабатывается быстрее, чем событие onchange, которое срабатывает только в конце изменения, например, когда пользователь выходит из формы или нажимает клавишу возврата. 13
- Немедленное выполнение. 3 Выражение, определённое в директиве ng-change, выполняется сразу же при изменении значения ввода. 13
- Возможность определения собственного поведения. 4 Ng-change позволяет задать поведение при изменении значения HTML-элемента, что упрощает реакцию на взаимодействие с пользователем. 4
Некоторые недостатки ng-change:
- Ограничения по типу изменений. 1 Директива ng-change срабатывает только при изменениях, которые происходят в результате взаимодействия пользователя с элементом ввода. 4 На программные изменения значения ввода она не реагирует. 4
- Необходимость использования ng-model. 14 Директива ng-change не может работать без ng-model. 1
- Отсутствие срабатывания в некоторых случаях. 1 Если значение модели изменяется в контроллере, а не в представлении, или если значение, возвращённое из конвейера преобразования $parsers, не меняется, то ng-change не срабатывает. 1