Грязный флажок по-прежнему установлен, когда для ng-model установлено значение false - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть простая проблема, но я не знаю, как ее решить в AngularJS 1.4. По сути, у меня есть форма с 1 флажком и 1 кнопкой. Кнопка должна снять флажок и установить для логической переменной (ng-model of box) значение 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");
    }
}

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Если я правильно понимаю ваш вопрос, вам просто нужна кнопка, чтобы снять флажок.

Если я прав, то почему бы тебе не попробовать?

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;
        }
}
0 голосов
/ 27 апреля 2018

Попробуйте использовать вот так

JS

$scope.checkboxModel = {
  displayWMSLayer: false  
};

HTML

<input type="checkbox"  ng-model="checkboxModel.displayWMSLayer" ng-change="showWMSLayerOnGlobe(checkboxModel.displayWMSLayer)"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...