ngChange在值改变时触发(ngChange与经典的onChange事件不相似)。我如何绑定经典的onChange事件与angularjs,只会在内容提交时触发?
当前绑定:
<input type="text" ng-model="name" ng-change="update()" />
This post显示了一个指令的示例,它将模型更改延迟到输入,直到
blur事件触发。
Here是一个小调,显示ng变化使用新的ng模型模糊指令。注意这是一个轻微的调整到original fiddle。
<input type="text" ng-model="name" ng-model-onblur ng-change="update()" />
这里是指令:
// override the default input to update on blur angular.module('app',[]).directive('ngModelOnblur',function() { return { restrict: 'A',require: 'ngModel',priority: 1,// needed for angular 1.2.x link: function(scope,elm,attr,ngModelCtrl) { if (attr.type === 'radio' || attr.type === 'checkBox') return; elm.unbind('input').unbind('keydown').unbind('change'); elm.bind('blur',function() { scope.$apply(function() { ngModelCtrl.$setViewValue(elm.val()); }); }); } }; });
注意:作为@wjin在下面的注释提到这个功能是通过ngModelOptions直接支持Angular 1.3(目前在测试版)。有关详细信息,请参阅the docs。