โพสต์นี้แสดงตัวอย่างของคำสั่งที่หน่วงเวลาให้โมเดลเปลี่ยนเป็นอินพุตจนกว่าเหตุการณ์เบลอจะเริ่มทำงาน
นี่คือซอที่แสดงการเปลี่ยนแปลงของ ng-change ที่ทำงานร่วมกับคำสั่ง ng-model-on-เบลอใหม่ หมายเหตุ: นี่คือการปรับแต่งเล็กน้อยกับซอเดิม
หากคุณเพิ่มคำสั่งลงในรหัสของคุณคุณจะเปลี่ยนการเชื่อมโยงเป็นสิ่งนี้:
<input type="text" ng-model="name" ng-model-onblur ng-change="update()" />
นี่คือคำสั่ง:
angular.module('app', []).directive('ngModelOnblur', function() {
return {
restrict: 'A',
require: 'ngModel',
priority: 1,
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 กล่าวถึงในความคิดเห็นด้านล่างคุณลักษณะนี้ได้รับการสนับสนุนโดยตรงในเชิงมุม 1.3 (ปัจจุบันอยู่ในรุ่นเบต้า) ngModelOptions
ผ่าน ดูเอกสารสำหรับข้อมูลเพิ่มเติม