If you want debounce on a model value, it is worth mentioning the debounce setting in ng-model-option:
For example: this watch is trigger 1000 ms after change and reset at new changes.
scope.$watch(attrs.ngModel, function(newValue) { });
https://docs.angularjs.org/api/ng/directive/ngModelOptions