2016-03-24 17 views
2

Oldukça karmaşık bir ng-repeat sahibim. Görüntülenen öğelerin sayısı iki düğme ile kontrol edilebilir. ilk düğmesi ilk düğmeyi ng-yinelemeden bir filtre kullanarak kaldırır. ikinci düğme, bir dizi öğeyi kaldırır ve bir grup başka öğeyi görüntüler (ayrıca bir filtre kullanarak).AngularJS animasyonları geçici olarak devre dışı bırakın

Şu anda böyle ng tekrar bir animasyon vardır:

<style> 
    .animation { 
    -webkit-transition: 1s; 
    } 
    .animation.ng-enter { 
    opacity: 0; 
    } 
    .animation.ng-enter.ng-enter-active { 
    opacity: 1; 
    } 
    /* Similar for ng-leave */ 
</style> 

<div class="animation" data-ng-repeat="item in items"> ... </div> 

Kullanıcı I elemanları animasyonu kullanmak isteyen birinci düğmesini tıkladığında

. Kullanıcı ikinci düğmeyi tıkladığında, herhangi bir animasyonu devre dışı bırakmak istiyorum.

AngularJS 1.2.16 kullanıyorum.

cevap

2

sınıfının koşullu olması için ng-class yönergesini kullanabilirsiniz. Bunu istemediğinizde animation sınıfını kaldırın, özellikle ikinci butona tıklayın. Yukarıdaki pasajı expression olarak

<div ng-class="{animation: expression }" data-ng-repeat="item in items"> ... </div> 

animation uzaklaştırılamaz ve animasyon devre dışı alacak, böylece false şekilde ayarlar durum/kapsamı değişken olacaktır.

+0

Eğer işlev denetleyicide daha fazla şey yapıyorsa, ilk önce 'expression' öğesini false değerine ayarlamalı ve ardından kodun geri kalanını bir' $ timeout' (veya buna benzer bir şey) içine koymalıdır. 'Animasyon' sınıfı –

+1

@AlonEitan'ın görüntülenmesi ve kaldırılması için teşekkürler Teşekkür ederim, zaman aşımı gerçekten gerekliydi! – Aerus

+0

@AlonEitan Önerilen şey için teşekkürler .. –