Since this must have an input element as a parent, you could just use
<input type="text" ng-model="foo" ngChange="myOnChangeFunctionng-change="myOnChangeFunction()"> Alternatively, you could use the ngModelControllerngModelController and add a function to $formatters$formatters, which executes functions on input change. See http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController
.directive("myDirective", function() { return { restrict: 'A', require: 'ngModel', link: function(scope, element, attr, ngModel) { ngModel.$formatters.push(function(value) { // Do stuff here, and return the formatted value. }); }; };