2016-04-07 8 views
1

Ich benutze collapse plugin von Bootstrap, und ich möchte auch die Klasse für ein anderes Element entsprechend ändern (ändern Klasse der Fa-Symbol). Ich benutze AngularJS auch, und ich mochte die Idee in ngClass wie diese mit Bedingung:Wie wird ngClass basierend auf dem Bootstrap-Kollaps gesetzt?

<i ng-class="collapsableItemId.hasClass('in') ? 'fa-chevron-up' : 'fa-chevron-down'"> 

Wenn Artikel nicht kollabierten Bootstrap ist fügt in Klasse zu. Ich möchte versuchen, das Symbol basierend auf der Klassenpräsenz in einem kollabierbaren Element zu ändern, habe es aber nicht geschafft. Im Bootstrap-Handbuch wird auch erwähnt, dass der Kollaps events generiert, den ich wahrscheinlich verwenden könnte, aber ich weiß auch nicht wie.

+0

Veröffentlichen Sie den Rest Ihres Codes. – ZimSystem

Antwort

1

Es sollte so funktionieren. Verwenden Sie ng-click auf dem collapse Kippelement auf einen anderen Rahmen var zu ändern und dann diese var verwenden im ng-class des Symbols ..

<a href="" data-toggle="collapse" data-target=".collapse" ng-click="isOpen=!isOpen"> 
    <i class="fa" ng-class="(isOpen) ? 'fa-chevron-up' : 'fa-chevron-down'"></i> 
    </a> 
    <div class="collapse in"> 
    I'm the collapsible element. 
    </div> 

http://www.bootply.com/nqLf22HCli

+0

Drücken Sie mehrmals schnell und Sie werden ein falsches Symbol bekommen :) jetzt ist es ähnlich implementiert) – Derp

+0

Dies sollte Sie in die richtige Richtung starten. Machen Sie stattdessen eine ng-klick-Funktion in Ihrem Controller und das Problem wird verschwinden. – ZimSystem

0
<i ng-class="{'fa-chevron-up': abc.isOpen ,'fa-chevron-down': !abc.isOpen }"></i><div ng-show="abc.isOpen">Hi..This div will be show hide and icon will be change accordingly</div> 

Verwendung ng Sie auf Kopf kollabiert und setzen das div, das Sie reduzieren möchten add ng-show = "abc.isOpen".

Verwandte Themen