当手风琴打开时,我希望我的箭头指向下方。当我使用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>
答案 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>
或者,正如Laloutre在评论中建议的那样,如果您不希望状态变量为ng-repeat对象属性,则可以使用is-open =“status.open [$ index]”。