如何在可能使用或不使用基本模板的dustjs中制作DRY模板?

时间:2013-12-09 01:25:31

标签: templates dust.js

我有这个模板:

{?doesExtend}
    {>base_template/}
    {<param}
        <div id='abc'>{foo}</div>
        <div id='def'>{bar}</div>
        <div id='ghi'>{bas}</div>
    {/param}
{:else}
    <div id='abc'>{foo}</div>
    <div id='def'>{bar}</div>
    <div id='ghi'>{bas}</div>
{/doesExtend}

这有效,但它不干......我必须把HTML放两次。我怎样才能做到如果doExtend存在,那么它会将模板扩展到基本模板,如果它不存在,那么它就不会扩展它并按照DRY的方式呈现它?

1 个答案:

答案 0 :(得分:1)

我只是将重复的代码移动到一个单独的部分。

{! "div_template"  !}
<div id='abc'>{foo}</div>
<div id='def'>{bar}</div>
<div id='ghi'>{bas}</div>

然后您的原始模板将如下所示:

{?doesExtend}
    {>base_template/}
    {<param}
        {>div_template/}
    {/param}
{:else}
        {>div_template/}
{/doesExtend}