为 keypress 或 keydown 以外的文本框触发 ng-change 事件
Fire ng-change event for textbox other than keypress or keydown
我想在使用某种方法更改值时更新文本值,当我仍在键入文本时不应调用该方法,但当退出文本框或通过脚本代码更改它时:
<input type="text" ng-model ="model.value" ng-change = "update()"/>
什么应该包含update()方法,
我尝试的是:为此文本框编写指令,并且
scope.$watch('model', function(nval,oval){
if ((oVal === undefined) && (nVal != undefined)){
update()
}
});
第一次调用,但不是每次模型值改变时。
我想在 model.value 更改时调用更新方法,而不是在输入文本时调用
您可以使用 ng-blur
,您应该更改 $watch
:
HTML:
<div ng-app="myApp" ng-controller="dummy">
<input type="text" ng-model="model.value" ng-blur="update()"/>
</div>
JS:
angular.module('myApp', [])
.controller('dummy', ['$scope', function ($scope) {
$scope.model = {
value: 'hello'
};
$scope.update = function () {
console.log("changed!");
};
$scope.$watch('model.value', function (nval, oval) {
if (oval !== nval) {
$scope.update();
}
});
}]);
您可以直接使用data-ng-model-options来达到您的要求。
喜欢,
在这里您可以获得 data-ng-nmodel-options 的完整参考
https://docs.angularjs.org/api/ng/directive/ngModelOptions
此指令适用于版本 angular1.4.x(从 1.4.x 版本开始)
我想在使用某种方法更改值时更新文本值,当我仍在键入文本时不应调用该方法,但当退出文本框或通过脚本代码更改它时:
<input type="text" ng-model ="model.value" ng-change = "update()"/>
什么应该包含update()方法,
我尝试的是:为此文本框编写指令,并且
scope.$watch('model', function(nval,oval){
if ((oVal === undefined) && (nVal != undefined)){
update()
}
});
第一次调用,但不是每次模型值改变时。
我想在 model.value 更改时调用更新方法,而不是在输入文本时调用
您可以使用 ng-blur
,您应该更改 $watch
:
HTML:
<div ng-app="myApp" ng-controller="dummy">
<input type="text" ng-model="model.value" ng-blur="update()"/>
</div>
JS:
angular.module('myApp', [])
.controller('dummy', ['$scope', function ($scope) {
$scope.model = {
value: 'hello'
};
$scope.update = function () {
console.log("changed!");
};
$scope.$watch('model.value', function (nval, oval) {
if (oval !== nval) {
$scope.update();
}
});
}]);
您可以直接使用data-ng-model-options来达到您的要求。 喜欢,
在这里您可以获得 data-ng-nmodel-options 的完整参考 https://docs.angularjs.org/api/ng/directive/ngModelOptions
此指令适用于版本 angular1.4.x(从 1.4.x 版本开始)