Javascript 灰尘模板包含多次

Javascript 灰尘模板包含多次,javascript,templates,inheritance,extend,dust.js,Javascript,Templates,Inheritance,Extend,Dust.js,很确定这是不可能的,但以防万一,比我聪明的人已经知道了 我收集了一些非常相似的灰尘模板,比如: <div id="some_id" class="inner funform"> <form id="form_id" action="/do/something"> <fieldset class="foo"> <div class="field"><input .../></div>

很确定这是不可能的,但以防万一,比我聪明的人已经知道了

我收集了一些非常相似的灰尘模板,比如:

<div id="some_id" class="inner funform">
  <form id="form_id" action="/do/something">
      <fieldset class="foo">
        <div class="field"><input .../></div>
        <div class="field"><input .../></div>
        <div class="field"><input .../></div>
      </fieldset>

      <fieldset class="bar">
        <div class="field"><input .../></div>
        <div class="field"><input .../></div>
        <div class="field"><input .../></div>
      </fieldset>
</div>
甚至考虑过在模板呈现时通过javascript在自定义上下文中传递,但这似乎是非常不可维护的,结果只是呈现一个模板作为内容传递给另一个模板,我不得不相信这是低效和有黑客味的

那么有没有办法实现我想要的呢?或者这是完全错误的方法,并且有更好的方法获得干燥内尘模板

----更新----

当然,理想情况下class=“field”div也可以通过基本模板呈现,但我希望我的示例保持简单。

请尝试使用@layout helper。也可通过npm安装尘粒布局

我只是对它做了一个增强,我一直在考虑这样做,以允许将参数传递给布局。这使你的案子更容易处理。我试过这个例子,它看起来很像你的需要:

场集尘

<fieldset class="{name}">
{@layout base="fieldset_body"/}
</fieldset>
我得到的结果是:

<fieldset class="foo"><div class="body1"><input></div><div class="body1"><input></div></fieldset><fieldset class="bar"><div class="body2"><input></div><div class="body2"><input></div></fieldset> 

layout.js似乎在var base=dust.helpers.tap(params.base、chk、ctx)失败,其中dust.helpers.tap未定义。我做错了什么?我已经在layout.js上面导入了链接的灰尘助手
{>"fieldset.dust"}
    fieldset content here..
{/"fieldset.dust"}
<fieldset class="{name}">
{@layout base="fieldset_body"/}
</fieldset>
<div class="{bodyClass}"><input></div>
{@layout base="fieldset" name="foo" bodyClass="body1"}{/layout}
{@layout base="fieldset" name="bar" bodyClass="body2"}{/layout}
<fieldset class="foo"><div class="body1"><input></div><div class="body1"><input></div></fieldset><fieldset class="bar"><div class="body2"><input></div><div class="body2"><input></div></fieldset>