という名前のテンプレートがある場合は、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);
});
最後のコメント: 正直なところ、これまでこれを行う必要はありませんでした。テンプレートを単独で理解できるように、テンプレートの構文をできるだけ多く使用するようにします。とにかく、これが役立つことを願っています。