我在模型上尝试了ng-change和$ watch。然而,它只发射一次。输入输入的第一个字符时。或者删除最后一个字符。例如,当我输入第一个数字时,正确调用该函数。当我继续在输入中键入其他数字时,不会调用该函数。就像输入为“1234”时一样,当输入1输入时,它会触发。但是当输入2和3和4时,它不会被触发。
删除时也会发生同样的事情。删除4,3,2时,事件不会被触发。当1被删除时,它会被触发。
在询问之前我确实搜索了论坛。但是,我找不到任何有意义的答案。它对消化生命周期有什么影响吗?
答案 0 :(得分:1)
使用ng-keyup事件,请尝试以下
<div ng-controller="test">
<input ng-model="a" ng-keyup="check()" />
</div>
angular.module("myApp", [])
.controller('test', ['$scope', function($scope){
$scope.check = function(){
alert('it changes');
}
}]);
答案 1 :(得分:0)
如果您进一步详细说明问题,将会很有帮助。
基本上这种情况正常。
<div ng-controller="test">
<input ng-model="a" ng-change="check()" />
</div>
JS代码
angular.module("myApp", [])
.controller('test', ['$scope', function($scope){
$scope.check = function(){
alert('it changes');
}
}]);
<div ng-controller="test">
<input ng-model="a" ng-change="check()" />
</div>
答案 2 :(得分:0)
今天,我遇到了同样的问题。我不确定您的大小写是否相同,但是对我来说,问题是我输入的类型是电子邮件,这会在输入的第一个字符上触发更改事件,然后在您输入@后立即再次触发事件字符串。 什么会触发变更事件:
希望有帮助:)