Javascript Angularjs-ng更改和$scope.$watch只触发一次

Javascript Angularjs-ng更改和$scope.$watch只触发一次,javascript,angularjs,Javascript,Angularjs,我试过ng change和$watch两种型号。然而,它只发射了一次。输入的第一个字符时。或删除最后一个字符时。例如,当我输入第一个数字时,函数被正确调用。当我继续在输入中键入其他数字时,该函数不会被调用。与输入为“1234”时一样,当在输入中键入1时,它将激发。但当输入2、3和4时,它不会被触发 删除时也会发生同样的情况。删除4,3,2时,不会触发事件。删除1时,它将被激发 我在询问之前搜索了论坛。然而,我没有找到任何有意义的答案。它有什么可以解释的吗 如果你能进一步阐述你的问题,那会很有帮助

我试过ng change和$watch两种型号。然而,它只发射了一次。输入的第一个字符时。或删除最后一个字符时。例如,当我输入第一个数字时,函数被正确调用。当我继续在输入中键入其他数字时,该函数不会被调用。与输入为“1234”时一样,当在输入中键入1时,它将激发。但当输入2、3和4时,它不会被触发

删除时也会发生同样的情况。删除4,3,2时,不会触发事件。删除1时,它将被激发


我在询问之前搜索了论坛。然而,我没有找到任何有意义的答案。它有什么可以解释的吗

如果你能进一步阐述你的问题,那会很有帮助的

基本上,这个场景运行良好

<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>
angular.module(“myApp”,[])
.controller('test',['$scope',function($scope){
$scope.check=函数(){
警报(“it变更”);
}
}]);

使用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');
 }
 }]);

angular.module(“myApp”,[])
.controller('test',['$scope',function($scope){
$scope.check=函数(){
警报(“it变更”);
}
}]);

今天我遇到了同样的问题。我不确定您的案例是否相同,但我的问题是,我的输入类型是电子邮件,这会在输入的第一个字符上触发更改事件,然后在字符串中键入@后再次触发事件。 什么将触发更改事件:

  • 示例(将触发一次)
  • 示例@(不会开火)
  • example@a(将再次发射)
  • example@a. (不会开火)
  • example@a.c(将再次发射)

希望有帮助:)

为我们提供fiddle或runnable示例,以演示您的问题您所描述的内容无法用默认代码复制;这可能是由代码或环境中的某些内容引起的。了解可能发生的情况需要对问题进行详细的分析。@PandiyanCool它在fiddle上运行良好。@Claies它是专有代码。所以我不能这么做。这与环境有关。因为我找不到答案,我在这里问。我不认为有什么可以补充的。上面的小提琴对我来说也很好。但不是在我的应用程序上下文中。我以前用过$watch和ng找零,它们都很有效。