我有一个预编译的把手模板,可以按预期渲染。
我决定在我预编译的模板中添加一个嵌入式(非预编译)部分引用,但部分内容无法正确呈现。
最终结果是嵌入的部分内容包含在渲染的HTML中(我想我的部分是“部分”工作:-D),但是:
这是呈现的HTML。下面列出了部分名为templateBodyItemNumberPartial
的3行(部分名称似乎以每行输出为前缀),并且<span>
中没有数据呈现:
<div class="templateBodyItem">
templateBodyItemNumberPartial
templateBodyItemNumberPartial <span class="templateBodyItemNumber"></span>
templateBodyItemNumberPartial
this is my body text
<div class="templateBodyItemFooter">this is my footer text</div>
</div>
这是引用templateBodyItemNumberPartial
部分的主要预编译模板:
{{! templates/nameWithPartial.handlebars }}
{{! precompiled via: handlebars ./templates/nameWithPartial.handlebars -f external_template_with_partial.js }}
<div class="templateBodyItem">
{{> templateBodyItemNumberPartial }}
{{ templateBodyItem }}
<div class="templateBodyItemFooter">{{ templateBodyFooter }}</div>
</div>
这是.html文件,我在其中定义/注册部分并调用我预先编译的nameWithPartial
模板:
<script type="text/javascript" src="./handlebars-v2.0.0-alpha.4.js"></script>
<script type="text/javascript" src="./external_template_with_partial.js"></script>
<script id="templateBodyItemNumberPartial" type="text/x-handlebars-template">
<span class="templateBodyItemNumber">{{ templateBodyItemNumber }}</span>
</script>
var templateBodyObject = {
templateBodyItemNumber : 4 ,
templateBodyItem : 'this is my body text' ,
templateBodyFooter : 'this is my footer text'
};
// verify that the partial html is what I think it should be
console.log( $( '#templateBodyItemNumberPartial' ).html() );
//=> <span class="templateBodyItemNumber">{{ templateBodyItemNumber }}</span>
Handlebars.registerPartial( 'templateBodyItemNumberPartial' , $( '#templateBodyItemNumberPartial' ).html() );
var templateHtml = Handlebars.templates.nameWithPartial( templateBodyObject );
我正在尝试使用嵌入式部分来测试部分在把手中的工作方式。
任何人都可以确认是否支持此功能吗?如果引用部分的主模板是预先编译的,我是否必须使用预编译的部分?
非常感谢!
顺便说一下,我正在运行Win7 Pro 64位,但希望这不是问题...答案 0 :(得分:0)
这个问题似乎可以通过将车把回滚到@ 1.3.0来解决。
我在上面更改了一行代码:
<script type="text/javascript" src="./handlebars-v2.0.0-alpha.4.js"></script>
为:
<script type="text/javascript" src="./handlebars-v1.3.0.js"></script>
然后我将把手CLI回滚到@ 1.3.0:
$ npm install -g handlebars@1.3.0
并重新编译外部模板:
$ handlebars ./templates/name_with_partial.handlebars -f external_template_with_partial.js
我猜是有部分问题和@ v2.0.0-alpha.4或者这个最新版本的部分功能已经改变了。我应该得到使用名称中带有“alpha”的东西。 :)
哦,谢谢你的聆听。