2013-08-01 13 views
7

mam tego przyciskuJak zmienić ikonę przycisku podczas zwijania z AngularJS?

<button class="btn" ng-click="isCollapsed = !isCollapsed"><i class="icon-fullscreen"></i>Details</button> 

I po kliknięciu na nim chciałbym, aby przełączyć na

<button class="btn" ng-click="isCollapsed = !isCollapsed"><i class="icon-resize-small"></i>Details</button> 

i dostać go z powrotem icon-fullscreen gdy zawaleniem.

Czy istnieje sposób AngularJS, aby to zrobić?

Odpowiedz

13

myślę, że może to zrobić trick:

<button class="btn" ng-click="isCollapsed = !isCollapsed"> 
    <i ng-class="{'icon-resize-small': isCollapsed, 'icon-fullscreen': !isCollapsed}"></i>Details 
</button> 

W tym przypadku, twój i musiałby klasę icon-resize-small gdy isCollapsed jest prawdą, a icon-fullscreen gdy nie jest to prawdą. Oto documentation.

Podczas przekazywania obiektu pary klucz-wartość do ngClass, klawisze reprezentują klasy, które zostaną zastosowane, jeśli ich wartości są prawdziwe.

4
<button ng-click="isCollapsed=!isCollapsed"> 
     <span ng-class="{'glyphicon glyphicon-plus': isCollapsed, 'glyphicon glyphicon-plus': !isCollapsed }"></span> 
     </button> 
+1

Proszę [edytuj] z dodatkowymi informacjami. Tylko kod i odpowiedzi "spróbuj tego" są zniechęcane (// meta.stackexchange.com/questions/196187), ponieważ nie zawierają treści do wyszukiwania i nie wyjaśniają, dlaczego ktoś powinien "spróbować tego". Staramy się być źródłem wiedzy. – Mogsdad

+0

* WYJAŚNIENIE W KOMENTARZE * Jest wiele sposobów na zrobienie tego iw zależności od tego, gdzie używasz tej funkcji, wymienię cztery możliwe sposoby użycia jej. Jeśli robisz to w ramach dyrektywy, kod będzie wyglądał inaczej, jak pokazano poniżej. jeśli chcesz dodać jakąś funkcję dołączoną do zmiany ikony, to w moich komentarzach wymienię niektóre scenariusze. Dla mnie, kiedy to robiłem, potrzebuję funkcji rozszerzenia panelu i tam mam "somefunction()". Tak jak powiedziałem na podstawie twoich potrzeb, oto kilka scenariuszy. – kupaff

+0

Komentarze są przejściowe i nie są uwzględniane w wynikach wyszukiwania, więc najlepiej jest [edytować] odpowiedź, aby dodać te informacje. (To byłaby dobra odpowiedź z tymi rzeczami, btw!) – Mogsdad

Powiązane problemy