我怎么能表达我的问题呢?我不确定 $ 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;
答案 0 :(得分:0)
ng-checked
的文档明确指出ng-checked
不应与ng-model
一起使用。
来自文档:
ngChecked
如果
checked
内的表达式是真实的,则在元素上设置ngChecked
属性。注意该指令不应与ngModel一起使用,因为这可能会导致意外行为。