1

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

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

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

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

问题是,当某些属性未定义时,评估会立即停止,例如:

(true) || () || ()

产生语法错误。

你能告诉我应该用什么方法来检查多个参数的存在吗?

提前致谢

4

1 回答 1

2

建议的方法是

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

但我觉得这很可怕。

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

于 2013-05-23T14:57:35.513 回答