我有一个简单的问题,但我不知道如何在AngularJS 1.4中解决它。基本上,我有一个带有1个复选框和1个按钮的表单。该按钮应取消选中该复选框,并将布尔变量(复选框的ng-model)设置为false。
但是,当用户选中复选框(复选框状态为脏)并且按钮无法取消选中此复选框时,我无法执行此操作。
有什么想法解决这个问题?
<button ng-click="uncheckCheckbox()">uncheck</button>
<input type="checkbox" ng-model="displayWMSLayer" ng-change="showWMSLayerOnGlobe(displayWMSLayer)"/>
一个粗略的Javascript代码,用于显示函数的作用:
function uncheckCheckbox() {
$scope.displayWMSLayer = false;
alert("Checkbox is unchecked automatically");
}
function showWMSLayerOnGlobe(status) {
if (status) {
alert("Checkbox is checked manually");
} else {
alert("Checkbox is unchecked manually");
}
}
答案 0 :(得分:0)
尝试这样使用
<强> JS 强>
$scope.checkboxModel = {
displayWMSLayer: false
};
<强> HTML 强>
<input type="checkbox" ng-model="checkboxModel.displayWMSLayer" ng-change="showWMSLayerOnGlobe(checkboxModel.displayWMSLayer)"/>
答案 1 :(得分:0)
如果我理解你的问题,你只需要一个按钮取消选中该复选框。
如果我是对的,那你为什么不尝试这种方式呢?
<强> HTML: - 强>
<div ng-app>
<div ng-controller="TodoCtrl">
<button ng-click="uncheck()">uncheck</button>
<input type="checkbox" ng-model="displayWMSLayer"/>
</div>
</div>
<强> JS: - 强>
function TodoCtrl($scope) {
$scope.displayWMSLayer = false;
$scope.uncheck=function(){
$scope.displayWMSLayer=$scope.displayWMSLayer?$scope.displayWMSLayer=false:$scope.displayWMSLayer;
}
}