UI Bootstrap手风琴 - ng-repeat中的向下箭头

时间:2016-07-29 23:45:10

标签: javascript angularjs angular-ui-bootstrap

当手风琴打开时,我希望我的箭头指向下方。当我使用ng-repeat is-open =" status.open"适用于每一支手风琴。这会产生一个问题,即is-open =" status.open"适用于所有手风琴。我需要每个手风琴都有独特的价值。 EG:open1,open2,open3

如何让我的ng-repeat为每支手风琴添加一个独特的值?

Plunker http://plnkr.co/edit/veFWTHuWIn2YpfgHqGMC?p=preview

<div uib-accordion-group class="panel-default" ng-repeat="group in groups" is-open="status.open">
  <uib-accordion-heading>
    {{group.title}} <i class="pull-right glyphicon" ng-class="{'glyphicon-chevron-down': status.open, 'glyphicon-chevron-right': !status.open}"></i>
  </uib-accordion-heading>
  {{group.content}}
</div>

1 个答案:

答案 0 :(得分:2)

您使用相同的状态变量(status.open)来表示所有手风琴组的开启/关闭状态。因此,如果一个是开放的,其他人也将打开,因为状态是相同的。要解决此问题,请将状态变量作为ng-repeat对象属性的一部分。

<div uib-accordion-group class="panel-default" ng-repeat="group in groups" is-open="group.open">
  <uib-accordion-heading>
    {{group.title}} <i class="pull-right glyphicon" ng-class="{'glyphicon-chevron-down': group.open, 'glyphicon-chevron-right': !group.open}"></i>
  </uib-accordion-heading>
  {{group.content}}
</div>

Here is the updated plunker.

或者,正如Laloutre在评论中建议的那样,如果您不希望状态变量为ng-repeat对象属性,则可以使用is-open =“status.open [$ index]”。