AngularJS - Blur binding 1.2.0
HTML
<script src="http://code.angularjs.org/1.2.0/angular.js"></script>
<input type="text" ng-model="value" ng-model-onblur />
<span ng-bind="value"></span>
JavaScript
function Main() {}
// override the default input to update on blur
angular.module('app', []).directive('ngModelOnblur', function() {
return {
restrict: 'A',
require: '?ngModel',
priority: 99,
link: function(scope, elm, attr, ngModel) {
if(!ngModel) return; // do nothing if no ng-model
if (['radio', 'checkbox'].indexOf(attr.type) > -1) return;
elm.unbind('input').unbind('keydown').unbind('change');
//ui->model
elm.on('blur', function() {
scope.$apply(read.call(this));
});
function read() {
ngModel.$setViewValue(elm.val());
}
}
};
});