我有一个具有多个属性的对象,即propA,propB propC和propD。我想用OR检查一个条件,检查多个参数,如下所示。
{@ if cond ="' {obj.propA}' .length> 0 || ' {obj.propB}' .length> 0 || ' {obj.propC}'&。长度GT; 0} ... {/如果}
现在因为@if在尘埃中被弃用了,我如何使用eq或select来编写等效的。或者是否有一个可以用于此类场景的新助手。
答案 0 :(得分:3)
我假设您正在测试的道具是字符串。
此示例需要dustjs-helpers> = 1.6。
你可以像这样使用@rragan提到的{@any}
和{@none}
助手:
{@select}
{@ne key=obj.propA value="" /}
{@ne key=obj.propB value="" /}
{@ne key=obj.propC value="" /}
{@any}At least one of the above tests was true. At least one prop is not an empty string.{/any}
{@none}None of the tests above passed. All the props are empty{/none}
{/select}
答案 1 :(得分:2)
select最近使用@any和@none扩展,可以让你做多个OR逻辑。请注意,.length仅起作用,因为不推荐使用的@if使用eval。灰尘测试使用存在/不存在所以我认为你可以避免使用.length。
如果您仍然喜欢@if,请参阅https://github.com/rragan/dust-motes/tree/master/src/helpers/control/if以获取不使用eval的解释版本。