Как я могу изменить класс css, когда все вкладки в ui.bootstrap.accordion закрыты, например, если вкладки были закрыты, потому что другая вкладка вызвала их закрытие, выражение класса ng не будет работать и не изменит значок.
это вид
<uib-accordion>
<uib-accordion-group ng-repeat="item in portafolio | orderBy : 'order' " ng-click="item.opened=!item.opened">
<uib-accordion-heading>
<i class="fa fa-lg" ng-class="(item.opened === true) ? 'fa-minus-circle':'fa-plus-circle'"></i>
<span>{{item.name}}</span>
<i class="pull-right fa fa-lg" ng-class="{'fa-caret-down': true === item.opened, 'fa-caret-right': false === item.opened}"></i>
</uib-accordion-heading>
<div ng-include="'modules/widgets/portafolio/tpl/'+item.type+'.html'"></div>
</uib-accordion-group>
</uib-accordion>
А в контроллере у меня так.
$scope.portfolio = [
{ type: 'Balance', order:1, name:'current balance', opened: false},
{ type: 'Credits', order:2, name:'Credits', opened: false},
{ type: 'Investments', order:3, name:'Investments', opened: false}
];
Я попытался использовать директиву ng-class, чтобы оценить, было ли item.opened истинным или ложным, но когда вкладки были закрыты, потому что их закрыла другая вкладка, item.opened не обновлялся.
Действительно, я исследовал, что с помощью $watch я могу «следить» за изменениями и запускать функцию, я видел, что когда я нажимаю на одну вкладку, добавляется класс css «.panel-open», но как я могу это увидеть? div, что класс css был добавлен для обновления элементов класса i.
Спасибо.
$watch
, который принимает функцию, и эта функция будет проверять, закрыты ли все панели, можете ли вы опубликовать то, что вы сделали до сих пор? - person svarog   schedule 31.08.2016