2014-06-19 27 views
8

ng tıklama özniteliğinde üçlü bir ifade kullanmanın mümkün olup olmadığını merak ediyorum. Mümkünse ayrı bir denetleyici işlevi kullanmak istemiyorum.angularjs içinde ng tıklama ile üçlü ifadesi

İki düğme arasında geçiş ayarı var - Basit bir geçiş ayarı yapabilirim, ancak tekrar açmak için "kapalı" düğmeyi ikinci kez tıklatmak istemiyorum.

ng tıklama içinde üçlü çalışmıyor (ng-sınıfında ve üçlü belirtse iş): Sen ile bir şey yapmıyoruz toggler

+0

Neden ng anahtarını kullanmıyorsunuz? – will

+0

Henüz ng-switch'i hakkında bilgi sahibi olmadım, ancak kısa bir kontrolden çok seçenekli bir ng-show/hide gibi görünüyor. Teşekkürler – braddo

cevap

4

: Burada

<button 
    ng-click="allOn2==true ? allOn2 : !allOn2" 
    ng-class="allOn2==true ? 'btn-green-on' : 'btn-green-off'"> 
ON</button> 

daha tam jsfiddle var üçlü ifade. yararlı olabilmesi için, atayın:

{{ var1 }} {{ var2}} 
<button 
    ng-click="var1 = (allOn2==true ? allOn2 : !allOn2)" 
    ng-class="{'btn-green-on':allOn2, 'btn-green-off' : !allOn2}"> 
ON</button> 

sana rağmen ng-sınıf için üçlü ifadeleri kullanabilirsiniz emin değilim ...

+1

Ah ... haklısın. Keman, projemde olduğu gibi, allOn değerini sınırladığım herhangi bir ng modelini göstermez. Ama neden önerdiğini görebiliyorum. Sanırım kafam karışmıştı çünkü ng-sınıfı “hiçbir şey yapmamanızı” gerektiriyor, yani sadece sınıfı bulmak için ifadeyi değerlendiriyorsunuz. Açık tıklamaya, allOn değerini açıkça ayarlamanız gerekir; bu, ifadenin değerlendirilmesiyle gerçekleşmekte olduğunu düşündüm. Teşekkürler! – braddo

+0

Burada güncelleştirilmiş kemanın bir bağlantısı var: [link] (http://jsfiddle.net/braddo/DUJrX/16/) – braddo

1

Sen üçlü

için geçici bir çözüm olarak olarak bir şeyler kullanabilirsiniz
ng-click="(AppliedApps!=null && Collapse('CollapsedAppliedApplications')) || 
(AppliedApps.length==0 && Collapse('CollapsedAppliedApplications'))"> 
İlgili konular