dustjs OR条件多个参数

时间:2015-10-27 04:31:41

标签: node.js template-engine dust.js dust-helpers

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

{@ if cond ="' {obj.propA}' .length> 0                 || ' {obj.propB}' .length> 0 || ' {obj.propC}'&。长度GT; 0}                 ... {/如果}

现在因为@if在尘埃中被弃用了,我如何使用eq或select来编写等效的。或者是否有一个可以用于此类场景的新助手。

2 个答案:

答案 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的解释版本。