2014-06-19 54 views
8

我想知道是否可以在ng-click屬性中使用三元表達式。 如果可能,我不想使用單獨的控制器功能ng-click在angularjs中的三元表達式

這是一個雙按鈕切換設置 - 我可以得到一個簡單的切換工作,但不想再次點擊「關閉」按鈕重新打開。

在NG單擊三元無法正常工作(注意納克級的三元不工作):

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

下面是一個更完整的jsfiddle: toggler

+0

爲什麼不直接使用ng-switch? – will

+0

還沒有學過ng-switch,但從簡單的檢查看來,它更像是一個多選ng-show/hide。謝謝 – braddo

回答

4

你是不是有做任何事情三元表達。它是有用的,它分配:

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

我不知道你如何使用納克級,雖然三元表情...

+1

啊...你是對的。在我的項目中,我的小提琴沒有顯示任何ng-model,我已經綁定了allOn的值。但我可以看到你爲什麼建議工作。我認爲我很困惑,因爲ng級要求你「無所事事」,即只評估表達式以找到班級。我需要明確地設置allOn的值,我認爲這是通過評估表達式而發生的。謝謝! – braddo

+0

這是更新的小提琴的鏈接:[link](http://jsfiddle.net/braddo/DUJrX/16/) – braddo

1

您可以使用的東西作爲作爲三元

一種解決方法
ng-click="(AppliedApps!=null && Collapse('CollapsedAppliedApplications')) || 
(AppliedApps.length==0 && Collapse('CollapsedAppliedApplications'))">