$ scope。当复选框值更改时,$ watch不会触发

时间:2017-09-04 06:59:10

标签: angularjs angularjs-scope

我怎么能表达我的问题呢?我不确定 $ scope。当复选框值更改时,$ watch不会触发 在我的项目中。

我刚刚创建了以下代码段,以便向您展示我的问题,但不幸的是,它正常运行!!

我的项目中存在相同的方法(当然,变量名称和函数名称不同)但它不起作用!!

您是否知道为什么我的代码可以阻止在我的项目中使用$scope.$watch?我尝试了很多东西,但它仍然没有用!!



<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<body>

<div ng-app="myApp" ng-controller="myCtrl">
<input type="checkbox" ng-checked="count==100" ng-true-value="100"
       ng-false-value="99999" ng-model="count">  {{caption}} 
</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.count = 100;
        $scope.$watch("count", function(a,b) {
            if ($scope.count==100){
                 $scope.caption = ' Showing first 100 records';
             } else {
                 $scope.caption = ' Showing all records';
             }        
          });

});
</script>

</body>
</html>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

ng-checked的文档明确指出ng-checked不应与ng-model一起使用。

来自文档:

  

ngChecked

     

如果checked内的表达式是真实的,则在元素上设置ngChecked属性。

     

注意该指令不应与ngModel一起使用,因为这可能会导致意外行为。

     

— AngularJS ng-checked Directive API Reference