我的javascript中有以下代码:
var context = {
"title": section_title
};
var section_template = $("section-template").html(),
template = Handlebars.compile(section_template);
alert("yeah!");
alert(context.title);
var final_section_content = template(context);
alert("WHat?");
alerts()
纯粹用于调试目的。
section_template
已正确填充我准备的模板
template
有一个函数作为其值,所以我假设编译也很顺利。
“是啊!”并正确显示上下文的标题。但是,template(context);
执行中似乎出现了问题。 “什么?”永远不会引发警报,因此永远不会设置HTML内容(稍后在程序中)。在程序的后面,我使用final_section_content
作为jQuery before()
函数的值。但是“什么?”本身没有被执行。知道为什么吗?
模板代码:
<script id="section-template" type="text/x-handlebars-template">
<div class="row-fluid">
<div class="span8 offset1">
{{! This will contain the section requirements}}
<div class="section-title">
<span class="add-on">
<i class="icon-plus-sign"></i>
</span>
<h2>
{{title}}
</h2>
<i class="icon-list" data-placement="bottom" data-title="Create sub-section"></i>
<i class="icon-pencil" data-placement="bottom" data-title="Edit section title"></i>
<i class="icon-trash" data-placement="bottom" data-title="Delete section"></i>
<div class="subsection">
{{! Dummy container for subsection}}
</div>
</div>
</div>
<div class="span2 offset1">
{{! This will contain the total score for the section}}
</div>
</div>
</script>
答案 0 :(得分:1)
确保在使用$('#section-template').html()
查询内容之前加载包含模板代码的元素。有关详细信息,请参阅Why is browser returning error "TypeError: this._input is null" in Firefox (and similar in Chrome) when using handlebars.js?。