检查dust.js中是否存在多个参数

时间:2013-05-23 14:49:57

标签: dust.js

我刚开始使用dust.js.而且我遇到了一个问题。 我需要在模板中指定一个条件(json参数存在)。根据它,应该呈现一些内部html。所以根据描述,我应该像这样使用smth:

{?param_name}
...
{:else}
{/param_name}

但我需要检查一个复杂的情况,所以我选择逻辑助手 - {@if ..}。事实证明,我想在条件中使用路径。所以..结果看起来:

{@if cond="{myObject.property1} || {myObject.property2} || {myObject.property3}"}
..
{/if}

问题是当一些属性未定义时,评估会停止在像:

(true) || () || ()

产生语法错误。

请问您应该用什么方法来检查多个参数的存在?

提前致谢

1 个答案:

答案 0 :(得分:2)

建议的方式是

{@if cond="('{myObject.property1}'.length} && '{myObject.property1}') || ... 

但我觉得这太可怕了。

我会写一个特定的助手来做这件事。查看@if - https://github.com/linkedin/dustjs-helpers/blob/master/lib/dust-helpers.js#L196

的代码