Bài đăng này cho thấy một ví dụ về chỉ thị trì hoãn việc thay đổi mô hình thành đầu vào cho đến khi sự kiện mờ kích hoạt.
Đây là một thao tác hiển thị cho thấy ng-change hoạt động với chỉ thị ng-model-on-fade mới. Lưu ý rằng đây là một chỉnh sửa nhỏ cho fiddle ban đầu .
Nếu bạn thêm chỉ thị vào mã của mình, bạn sẽ thay đổi ràng buộc của mình với điều này:
<input type="text" ng-model="name" ng-model-onblur ng-change="update()" />
Đây là chỉ thị:
// 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());
});
});
}
};
});
Lưu ý: như @wjin đã đề cập trong các nhận xét bên dưới, tính năng này được hỗ trợ trực tiếp trong Angular 1.3 (hiện đang trong giai đoạn thử nghiệm) thông qua ngModelOptions
. Xem tài liệu để biết thêm thông tin.