首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dust js部分/子模板输出未定义

Dust js部分/子模板输出未定义
EN

Stack Overflow用户
提问于 2016-09-09 06:56:00
回答 1查看 126关注 0票数 0

我使用的是nwjs和dust.js。父模板按预期工作,但如果我尝试加载子(部分)模板,则输出未定义。我是否遗漏了一些东西来使子模板/部分模板工作?谢谢。

代码语言:javascript
复制
<div id="output"></div>

<script>
   const  dust = require('dustjs-helpers'); 
</script>
<!-- Because I can't figure out why require(./dist/templates) errors dust undefined. -->
<script type="text/javascript" src="./dist/templates.js"></script>

<script type="text/javascript">
let templateName = 'src/templates/anotherTemplate',
    data = {heading: "This is a heading", article: "Blah blah blah."};

dust.render(templateName, data, (err, out) => {
    console.log(out);
    document.getElementById('output').innerHTML = out;
}); 
</script>

模板:

someTemplate.dust:(父级)

代码语言:javascript
复制
<h1>{heading}</h1>
<p>{article}</p>
{+someBlock/}

anotherTemplate.dust:(子/部分)

代码语言:javascript
复制
{>someTemplate/}
{<someBlock}
    My custom block content.
{/someBlock}

编译模板:(用dustc -./node_modules/dustjs-linkedin/bin/dustc./src/ -o /*.ust templates./dist/templates.js编译)

代码语言:javascript
复制
(function(dust){dust.register("src\/templates\/anotherTemplate",body_0);var blocks={"someBlock":body_1};function body_0(chk,ctx){ctx=ctx.shiftBlocks(blocks);return chk.p("someTemplate",ctx,ctx,{});}body_0.__dustBody=!0;function body_1(chk,ctx){ctx=ctx.shiftBlocks(blocks);return chk.w("My custom block content.");}body_1.__dustBody=!0;return body_0}(dust));
(function(dust){dust.register("src\/templates\/someTemplate",body_0);function body_0(chk,ctx){return chk.w("<h1>").f(ctx.get(["heading"], false),ctx,"h").w("</h1><p>").f(ctx.get(["article"], false),ctx,"h").w("</p>").b(ctx.getBlock("someBlock"),ctx,{},{});}body_0.__dustBody=!0;return body_0}(dust));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-09 07:09:59

您包含了{>someTemplate/},但您使用不同的名称注册了该模板:src/templates/someTemplate

如果希望Dust注册不带src/templates前缀的模板,请使用pass the --pwd parameter to dustc

代码语言:javascript
复制
./node_modules/dustjs-linkedin/bin/dustc ./src/templates/*.dust -o ./dist/templates.js --pwd=src/templates
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39401343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档