使用ng-class和ng-click切换手风琴面板图标

bjo*_*asm 9 accordion twitter-bootstrap angularjs angularjs-ng-click

我有一个带有"雪佛龙"图标的手风琴,当点击时,这些图标被切换为指向上或下,这是用ng-click和完成的ng-class.手风琴只允许一个面板同时打开 - 所以当我点击一个关闭的面板时,打开的面板关闭.但是如何切换打开面板上的V形图标ng-click

最初我可以用DOM操作等来做,但由于这是角度的局部视图我不能这样做.

码:

<div class="panel-group" id="accordion">
  <div class="panel panel-default">
    <div class="panel-heading">
      <h4 class="panel-title">
        <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne" ng-click="firstpaneisopen=!firstpaneisopen">
           <i class="glyphicon" ng-class="{'glyphicon-chevron-up': firstpaneisopen, 'glyphicon-chevron-down': !firstpaneisopen}"></i> Collapsible Group Item #1
         </a>
      </h4>
     </div>
    <div id="collapseOne" class="panel-collapse collapse in">
     <div class="panel-body">
       Body
     </div>
    </div>
  </div>
  <div class="panel panel-default">
   <div class="panel-heading">
     <h4 class="panel-title">
       <a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" ng-click="secondpaneisopen=!secondpaneisopen>
         <i class="glyphicon" ng-class="{'glyphicon-chevron-up': secondpaneisopen, 'glyphicon-chevron-down': !secondpaneisopen}"></i> Collapsible Group Item #2
       </a>
     </h4>
    </div>
    <div id="collapseTwo" class="panel-collapse collapse">
     <div class="panel-body">
       Body
     </div>
    </div>
   </div>
 </div>
Run Code Online (Sandbox Code Playgroud)

And*_*ula 3

我建议您查看 AngularUI 团队的“UI Bootstrap”。它是“用纯 AngularJS 编写的 Bootstrap 组件”的集合。

http://angular-ui.github.io/bootstrap/

他们的网站提供了一个示例,显示了他们的 Accordion 指令用于ng-class切换 V 形图标。

http://angular-ui.github.io/bootstrap/#/accordion

他们的指令还具有一个close-others属性,如果该属性为 true,将确保在任何时候仅打开​​一个面板。

<accordion close-others="true">
Run Code Online (Sandbox Code Playgroud)