2014-06-19 18 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'))">