gpt4 book ai didi

Angularjs:输入[文本] ngChange 在值更改时触发

转载 作者:行者123 更新时间:2023-12-03 04:58:58 28 4
gpt4 key购买 nike

ngChange 在值更改时触发(ngChange 与经典的 onChange 事件不同)。我如何将经典的 onChange 事件与 angularjs 绑定(bind),该事件仅在提交内容时触发?

当前绑定(bind):

<input type="text" ng-model="name" ng-change="update()" />

最佳答案

This post显示了一个指令示例,该指令延迟模型对输入的更改,直到 blur事件触发。

Here是一个 fiddle ,显示 ng-change 使用新的 ng-model-on-blur 指令。请注意,这是对 original fiddle 的轻微调整。 .

如果您将该指令添加到您的代码中,您将更改您的绑定(bind):

<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(目前处于测试版)通过 ngModelOptions 直接支持此功能。请参阅the docs了解更多信息。

关于Angularjs:输入[文本] ngChange 在值更改时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11868393/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com