如果您有一个名为的模板someTemplate
,则可以使用 .将其包含在另一个模板中{>someTemplate/}
。您可以使用 分配上下文{>someTemplate:someContext/}
并使用 传递内联参数{>someTemplate some_param="A parameter"/}
。例子:
<h1>{heading}</h1>
<p>{article}</p>
{>someTemplate/}
如果要使用块(它们具有以下语法{+blockName/}
,或者{+blockName}Default block content{/blockName}
您必须使用块定义模板,然后将该模板作为部分包含,然后覆盖块。名称为“someTemplate”的示例模板:
<h1>{heading}</h1>
<p>{article}</p>
{+someBlock/}
然后像这样覆盖块:
{>someTemplate/}
{<someBlock}
My custom block content.
{/someBlock}
编辑:
要自定义模板外部的块,请使用dust.makeBase
. 这个上下文对象可以传递给dust.render
你的 templateData(无论如何,dust 在内部都会这样做)。然后将一个块添加到上下文中,使用context.shiftBlocks
参数是您要覆盖的块的散列。例子:
var context = dust.makeBase(templateData).shiftBlocks({
someblock: function (chunk, context) {
return chunk.write('my new block content');
}
});
dust.render('myTemplate', context, function (error, html) {
console.log(html);
});
最后的一些评论:说实话,到目前为止我还没有必要这样做。我会尝试尽可能多地使用模板语法,以便您的模板可以自己理解。无论如何,我希望这会有所帮助。