Плагин свертывания Angular-Strap, открывающий более одной панели одновременно (?)
Привет, ребята, это плагин http://mgcrea.github.io/angular-strap/
Я пытаюсь использовать этот плагин в своем приложении, но не делаю то, что я хочу, я хочу использовать его более динамично, как вы можете видеть в примере на веб-странице, вы можете иметь только одну открытую панель одновременно, и я хочу дать пользователям возможность открывать столько панелей, сколько они хотят, и это мой HTML:
<div class="panel-group" ng-model="panels.activePanel" bs-collapse>
<div class="panel panel-default"
ng-repeat="sport in sports" ng-show="sport.leagues.length">
<div class="panel-heading"
bs-collapse-toggle
ng-click="addSportToLines(sport)">
<h4 class="panel-title">
<a>
{{::sport.name }}
</a>
<span class="pull-right badge">{{::sport.leagues.length }}</span>
</h4>
</div>
<div class="panel-collapse" bs-collapse-target>
<div class="panel panel-default">
<div class="list-group">
<a href="javascript:void(0);"
class="list-group-item panel-padding"
ng-repeat="league in sport.leagues"
ng-class="{active: league.active}"
ng-click="addLeagueToLines(league)">{{:: league.name }}</a>
</div>
</div>
Есть ли способ сделать это или мне нужно использовать другой инструмент?
1 ответ
Если вы посмотрите на исходный код элемента управления свертыванием угловой ленты, вы заметите эту функцию внутри контроллера:
self.$setActive = $scope.$setActive = function(value) {
if(!self.$options.disallowToggle) {
self.$targets.$active = self.$targets.$active === value ? -1 : value;
} else {
self.$targets.$active = value;
}
self.$viewChangeListeners.forEach(function(fn) {
fn();
});
};
Как вы видете $targets.$active
это одно значение, означающее, что директива учитывает только одну панель, открытую одновременно. Чтобы изменить функциональность директивы, вам придется ее раскошелиться и внести необходимые изменения.
Я бы посмотрел на мой ответ на ваш подобный вопрос как лучший подход. Вам не нужна библиотека / плагин, чтобы получить результат, который вы ищете. См.: /questions/34649607/angularjs-mne-nuzhen-akkordeon-s-vozmozhnostyu-odnovremennogo-otkryitiya-neskolkih-panelej/34649615#34649615