Angularjs - отключение и снятие флажка - программирование

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.." для меня, но он выглядит хорошо, поэтому я сохраняю это сейчас.

Спасибо!!

4b9b3361

Ответ 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