So, from what I understand, there are some user actions on some elements (inside the directive), and you have to do something every time these events are triggered.
The purpose of $ watch is to “watch” / do something every time a particular variable value changes. $scope.$watch('watchedVariable', onWatchedVariableChangedFn)where onWatchedVariableChangedFn is a function. This only works when the value really changes, regardless of what causes the change.
, , ng-click='onClickFn()'. . [ , ng-click . , (, ..).]
, , / , , .
: , , , , - ($ emit/$broadcast) ($ on) , .