У меня есть серия пунктов списка, заполненных ng-repeat. Видимость контролируется простыми отношениями ng-click и ng-show. По большей части, это работает просто отлично, но я хочу иметь возможность контролировать поведение «показать / скрыть» с помощью глобальной кнопки, которая будет отображать или скрывать все доступные элементы в списке.
Справедливое раскрытие: я все еще очень плохо знаком с AngularJS. Я знаю, что это ограниченная проблема, но я не уверен, как ее решить. Это почти наверняка случай незнания правильного вопроса.
У меня есть jsfiddle, демонстрирующий мою трудность: http://jsfiddle.net/36BYs/838/
Пример HTML:
<div ng-controller="MainCtrl">
<span ng-show="!IsVisible" ng-click="isVisible = !isVisible;" >
(show/hide all)
<i class="fa fa-minus-square-o fa-small"></i>
</span>
<ul>
<li ng-repeat="mentor in mentors">
<a ng-click="isVisible = !isVisible;">show/hide</a>
<span ng-show="isVisible">{{mentor}}</span>
</li>
</ul>
</div>
Образец JS:
var app = angular.module('myApp', []);
function MainCtrl( $scope ) {
$scope.isVisible = true;
$scope.mentors = [ 'Jonathan', 'Nathan', 'Chris', 'Brian', 'Timothy' ];
}
Работает нормально, если вы не переключили один из элементов списка независимо друг от друга. но если вы щелкнете, чтобы показать / скрыть определенную строку, глобальный щелчок по нг теряет контроль над элементом.
Заранее благодарим за любой совет, который вы можете предложить.