dustjs 或多个参数的条件

dustjs OR condition over multiple parameters

我有一个具有多个属性的对象,即 propA、propB、propC 和 propD。我想写一个条件,用 OR 检查多个参数,如下所示。

{@if cond="'{obj.propA}'.length > 0 || '{obj.propB}'.length > 0 || '{obj.propC}'.length> 0} ... {/if}

既然 @if 在尘埃中被弃用了,我该如何用 eq 或 select 写一个等价的东西。或者有没有我可以在这种情况下使用的新帮手。

select 最近使用 @any 和 @none 进行了扩展,让您可以执行多个 OR 逻辑。请注意,.length 仅有效,因为已弃用的 @if 使用 eval。灰尘测试使用 existence/non-existence 所以我认为你可以避免使用 .length。

如果您仍然喜欢 @if,请参阅 https://github.com/rragan/dust-motes/tree/master/src/helpers/control/if 不使用 eval 的解释版本。

我假设您要测试的道具是字符串。

这个例子需要 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}