toggle/} {/partial} 像这样:-6ren">
gpt4 book ai didi

dust.js - 如何将部分传递给 Dust.js 模板

转载 作者:行者123 更新时间:2023-12-02 08:39:03 24 4
gpt4 key购买 nike

我查阅了 Dust.js GitHub 页面,它说我可以将部分传递给模板,如下所示:

{@partial checkbox_title="JM"}
{>toggle/}
{/partial}

像这样:
{>toggle checkbox_title="Hi JM"/}  

我都试过了,但都没有奏效,所以我使用了以下方法:

家长:
{< checkbox_title}
Hi JM
{/checkbox_title}
{>toggle/}

child :
{+checkbox_title/}

以上工作,除非我尝试使用以下内容呈现模板:
dust.render("toggle", base.push({checkbox_title:"hhhhhh"}),
function(err, html) { console.log(html); });

目标:使用dust.render覆盖子模板中的 block

最佳答案

如果您有一个名为 someTemplate 的模板您可以使用 {>someTemplate/} 将其包含在另一个模板中.您可以使用 {>someTemplate:someContext/} 分配上下文并使用 {>someTemplate some_param="A parameter"/} 传递内联参数.例子:

<h1>{heading}</h1>
<p>{article}</p>
{>someTemplate/}

如果你想使用 block (它们有以下语法 {+blockName/}{+blockName}Default block content{/blockName} 那么你必须用 block 定义一个模板,然后将该模板作为部分包含,然后覆盖 block 。示例模板名称为“someTemplate”:
<h1>{heading}</h1>
<p>{article}</p>
{+someBlock/}

然后像这样覆盖 block :
{>someTemplate/}
{<someBlock}
My custom block content.
{/someBlock}

编辑:

要自定义模板外的 block ,请使用 dust.makeBase 创建上下文.此上下文对象可以传递给 dust.render代替您的 templateData (无论如何,灰尘在内部都会这样做)。然后使用 context.shiftBlocks 将 block 添加到上下文中参数是您要覆盖的 block 的散列。例子:
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);
});

最后的一些评论:说实话,到目前为止我还没有必要这样做。我会尝试尽可能多地使用模板语法,以便您的模板可以自己理解。无论如何,我希望这会有所帮助。

关于dust.js - 如何将部分传递给 Dust.js 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18194366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com