Я пытаюсь сделать входные элементы таблиц отключенными из-под верхней (главной) строки, если в активной строке "Active" или "Engaged" boolean установлено значение true. Я не хочу, чтобы они потеряли свои данные под верхней строкой, когда они установили ее правду, только для ее отключения. Если пользователь устанавливает "Active" && "Engaged" в false в верхней строке, я хочу, чтобы они снова могли редактировать данные ниже верхней строки. Есть ли простой способ сделать это с помощью AngularJs?
Вот пример: https://jsfiddle.net/7kg6kuzm/2/
<body ng-app="test" ng-controller="AppCtrl">
<p>{{test}}</p>
<table class="table table-bordered">
<thead>
<tr>
<th class="border-less"></th>
<th>People</th>
<th>Active</th>
<th>Engaged</th>
<th>Town</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="(month, info) in months">
<td><p>{{month}}</p></td>
<td><input type="text" ng-model="info.people"/></td>
<td><input type="checkbox" ng-model="info.active"/></td>
<td><input type="checkbox" ng-model="info.engaged"/></td>
<td><input type="text" ng-model="info.form" /></td>
</tr>
</tbody>
возможное значение объекта json (в этом случае, поскольку "все" или верхняя строка имеет одно из булевых значений, установленное в true, остальные строки будут отключены):
var months = {
"all": {"people":25,"active":true,"engaged":false,"form":"test0"},
"jan": {"people":63,"active":false,"engaged":true,"form":"test2"},
"feb": {"people":46,"active":true,"engaged":false,"form":"test3"},
"mar": {"people":65,"active":false,"engaged":false,"form":"test4"},
"apr": {"people":66,"active":true,"engaged":true,"form":"test5"},
"may": {"people":67,"active":false,"engaged":true,"form":"test6"}
}
Я понял это, став для будущей справки, или если кто-то еще должен знать, как это сделать:
https://jsfiddle.net/7kg6kuzm/3/
В итоге я поставил проверку на каждую строку ввода, а также проверил значение первой строки:
<td><input ng-disabled="(months['all'].active || months['all'].engaged) && this.month!=='all'" type="text" ng-model="info.people"/></td>