3 回答
TA贡献1805条经验 获得超10个赞
这篇文章显示了一个指令示例,该指令将模型对输入的更改延迟到模糊事件触发之前。
这是一个小提琴,显示了ng-change与新的ng-model-on-blur指令一起使用。请注意,这是对原始提琴的略微调整。
如果将指令添加到代码中,则将绑定更改为:
<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在下面的注释中提到的,此功能在Angular 1.3(当前为beta)中通过受到直接支持ngModelOptions。有关更多信息,请参阅文档。
TA贡献1877条经验 获得超1个赞
如果其他任何人正在寻求其他“输入”按键支持,这里是Gloppy提供的小提琴的更新。
按键绑定代码:
elm.bind("keydown keypress", function(event) {
if (event.which === 13) {
scope.$apply(function() {
ngModelCtrl.$setViewValue(elm.val());
});
}
});
- 3 回答
- 0 关注
- 1616 浏览
添加回答
举报