我需要用4个条件写一个角度ng-switch
。
此处的其他一些答案建议使用ng-if
代替ng-switch
。
所以我尝试了ng-if
,但我不认为这是最好的方法,我会解释原因:
基本上我需要显示3个不同的图标,这取决于我在我的范围内得到的一些变量。
我的模板中的代码如下:
<div class="buttons">
<div ng-if="test.mMode==4 && test.kit==4 && test.react.on==true && test.act==1">
<i class="icon ion-man"></i>
</div>
<div ng-if="test.mMode==4 && test.kit==4 && test.react.on==false && test.act==1">
<i class="icon ion-man"></i>
</div>
<div ng-if="zone.iActivity==1">
<i class="icon ion-man"></i>
</div>
</div>
现在,对我来说,这看起来非常麻烦。 而且,它没有按预期工作,因为它通过所有if语句迭代打印所有真实。
是否有可能做以下事情呢?
<div class="buttons" ng-switch="test.act && test.Mode && test.kit && test.react.on">
<div ng-switch-when="1 && 4 && 4 && true">
<i class="icon ion-man"></i>
</div>
<div ng-switch-when="1 && 4 && 4 && false">
<i class="icon ion-man"></i>
</div>
<div ng-switch-when="1"> //I need only the first condition to be true, I don't need the others.
<i class="icon ion-man"></i>
</div>
</div>
或者,您对如何正确处理此类模板有任何其他建议吗?
希望问题很清楚。
感谢您的帮助
答案 0 :(得分:1)
有点脏的解决方案是使用array和toString()方法。
<ng-switch on="[Ex1.x, Ex1.y].toString()">
<div ng-switch-when="0,true">
0,true -- jaj
</div>
<div ng-switch-when="1,true">
1,true -- jaj
</div>
<div ng-switch-when="2,false">
2,false -- jaj
</div>
<div ng-switch-default>
default... booo
</div>
</ng-switch>