angularjs - ngswitch 有 4 个条件
angularjs - ngswitch with 4 conditions
我需要写一个有 4 个条件的 angular ng-switch
。
SO 上的一些其他答案建议使用 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>
现在,对我来说,这看起来真的很乱。
而且,它没有按预期工作,因为它遍历所有打印所有 true 的 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>
或者,对于如何正确处理此类模板,您还有其他建议吗?
希望问题够清楚。
感谢您的帮助
有点肮脏的解决方案是使用数组和 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>
Fiddle: https://jsfiddle.net/r88dhr0w/
我需要写一个有 4 个条件的 angular ng-switch
。
SO 上的一些其他答案建议使用 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>
现在,对我来说,这看起来真的很乱。 而且,它没有按预期工作,因为它遍历所有打印所有 true 的 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>
或者,对于如何正确处理此类模板,您还有其他建议吗?
希望问题够清楚。
感谢您的帮助
有点肮脏的解决方案是使用数组和 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>
Fiddle: https://jsfiddle.net/r88dhr0w/