Angularjs - отключение и снятие флажка
У меня есть сложный набор флажков в группах, заполненных данными из многомерных массивов, и есть некоторые конкретные вещи, которые должны произойти с ними... Я извлек минимум того, что мне нужно, поэтому я попытаюсь объяснить
В этой скрипте
http://jsfiddle.net/EVZUV/
первый флажок включен, а второй отключен. Когда первый флажок установлен, вторая становится включенной. То, что я пытаюсь получить, - это UNCHECK второй блок, если он снова отключается, когда первый флажок снят.
Вот код, который у меня есть, который почти работает
<input type="checkbox" ng-model="disablelist" ng-click="checkitems">Check this box to enable the other.. <br><br>
<input type="checkbox" ng-disabled="!disablelist" ng-checked="checkitems">When this checkbox is disabled it also must get unchecked
Я просто получаю int-js, и некоторые идеи довольно "whaaa.." для меня, но он выглядит хорошо, поэтому я сохраняю это сейчас.
Спасибо!!
Ответы
Ответ 1
Простое решение здесь: http://jsfiddle.net/7mKtF/2/
HTML:
<div ng-app="myApp">
<input type="checkbox" ng-model="disablelist">Check this box to enable the other.. <br><br>
<input type="checkbox" ng-disabled="!disablelist" ng-checked="disablelist && 0">When this checkbox is disabled it also must get unchecked
</div>
JS:
var app = angular.module('myApp', []);
В основном, я обновил оператор ng-checked
, включив в него свойство disablelist
. Используя логическую логику, второй флажок будет оцениваться как false, если disablelist
- false.
EDIT:
Также стоит отметить, что способ, которым вы в настоящее время располагаете, привязка ng-click
фактически ничего не делает. Вы бы хотели использовать ng-click
для вызова функциональной переменной, используя круглые скобки аргументов.
Ответ 2
Вы можете сделать это, назначив модель вашему второму флажку, затем reset, когда вы нажмете первый флажок.
HTML:
<input type="checkbox" ng-model="disablelist" ng-click="otherOption = false" /> Check this box to enable the other..
<input type="checkbox" ng-model="otherOption" ng-disabled="!disablelist" ng-checked="!!otherOption && !disableList" /> When this checkbox is disabled it also must get unckeched
Проверьте результат в этом jsFiddle