При запуске события JS его обычно обрабатывают так же, как обрабатываются все события JS - в этом нет ничего особенного или уникального.
Однако угловой окутают обработчик внутри от $ применяется блок так, что после того, как он выполняет функцию, она может вызвать цикл дайджеста:
$scope.$apply(function(){
$element.on('click',function(e){
...
});
})
дайджест цикл перебирает все переменная области видимости, сравнивает каждый из которых имеет предыдущее значение, чтобы определить, изменилось ли что-либо, и если оно есть, то их соответствующие $ watch-обработчики вызываются для обновления представления.
Поскольку вы используете угловые настройки, создайте выражения $ watch, когда хотите обнаружить, что модель в вашей области изменилась, а затем выполните любые манипуляции с DOM внутри вашего обработчика $ watch. Если вас беспокоит производительность, убедитесь, что функция $ watch оптимизирована (т. Е. Избегайте полного jquery, избегайте дорогостоящих селекторов запросов, минимизируйте манипуляции с DOM и т. Д.)
Чтобы ответить на ваш вопрос, вы должны использовать $ watch для мониторинга изменений ваши модели и функции $ watch для обновления вашего представления.
Возможный дубликат: http://stackoverflow.com/questions/19616520/what-is-cheaper-performance-wise-broadcast-or-watch – Sprottenwels