javascript - 需要有关灰尘模板的建议

标签 javascript dust.js

我对灰尘(linkedin)完全陌生,只是在制作我的第一个小模板。在写出明显(但很长)的方法后,我想到了一种使用内联部分进行优化的方法。 长版本如下所示:

{#parcours}<tr class="pcsel_pc" id="{id}">
<td class="pcsel_exp_btn"><a href="#"  class="list{?exp}Hide{:else}Exp{/exp}Btn">
<span class="glyphicon glyphicon-{?exp}minus{:else}plus{/exp}"></span></a></td>
<td class="pcsel_col">{name}</td><td class="pcsel_col pcsel_num">{count}</td>
</tr>
{?exp}
{#variants}
<tr class="pcsel_var{?sel} pcsel_sel{/sel}" id="{id}" >
<td class="pcsel_col">&nbsp;</td><td class="pcsel_var pcsel_col">{name}</td>
<td class="pcsel_col pcsel_num">{count}</td>
</tr>
{/variants}
{:else}
{#variants}
<tr class="pcsel_var pcsel_hide" id="{id}" >
<td class="pcsel_col">&nbsp;</td><td class="pcsel_var pcsel_col">{name}</td>
<td class="pcsel_col pcsel_num">{count}</td>
</tr>
{/variants}
{/exp}
{/parcours}

说明: 我有一个上下文 parcours,其中包含内部上下文变体。如果变量 exp 在外部上下文中不存在,我想在内部上下文中使用类 pcsel_hide 。 这个解决方案有效,但内部上下文的代码包含两次,这有点愚蠢。所以我想了一种使用内联部分的方法,它是在外部上下文中有条件设置并在内部上下文中使用的:

{#parcours}<tr class="pcsel_pc" id="{id}">
<td class="pcsel_exp_btn"><a href="#"  class="list{?exp}Hide{:else}Exp{/exp}Btn">
<span class="glyphicon glyphicon-{?exp}minus{:else}plus{/exp}"></span></a></td>
<td class="pcsel_col">{name}</td><td class="pcsel_col pcsel_num">{count}</td>
</tr>
{?exp}{<hide/}{:else}{<hide} pcsel_hide{/hide}{/exp}
{#variants}
<tr class="pcsel_var{+hide/}{?sel} pcsel_sel{/sel}" id="{id}" >
<td class="pcsel_col">&nbsp;</td><td class="pcsel_var pcsel_col">{name}</td>
<td class="pcsel_col pcsel_num">{count}</td>
</tr>
{/variants}
{/parcours} 

这个版本很好而且很短,但它似乎没有完成这项工作。即使外部上下文包含 exp 并因此使用正确的类,我也始终看到类 pcsel_hide 。 有任何想法吗 ?

最佳答案

这是因为内联部分是在模板渲染开始之前静态评估的。以相同名称定义的内联部分的最后一个版本获胜。

内联部分不能像这样有条件地评估。您可能想要的是使用像 {@eq} 这样的逻辑助手。

关于javascript - 需要有关灰尘模板的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33049542/

相关文章:

javascript - 如何将客户端值从浏览器端传递到 Node.js Controller

javascript - S3 预签名 URL 的格式

javascript - 如何避免大型 HTML 表格中的文本分页(打印/PDF)?

node.js - 如何基于服务器和客户端向 Dust.js 添加上下文助手

javascript - Dust.js 模板示例

javascript - 转义 Dust.js 标签

javascript - 如何为函数值创建 React Context 而无需一直重新渲染

javascript - 根据 iFrame 内容自定义自己的页面?

javascript - childNodes 方法找不到我的字段名称

node.js - 将 Dust.js 与 Visual Studio 的 Node.js 工具结合使用