我在Handlebars中创建了一个帮助逻辑的帮手,但是我的模板将返回的HTML解析为文本而不是html。把手模板作为文本呈现模板
我有测验完成后所呈现的测验结果页面:
<script id="quiz-result" type="text/x-handlebars-template">
{{#each rounds}}
{{round_end_result}}
{{/each}}
<div class="clear"></div>
</script>
对于每一个回合,我用一个助手来确定渲染一轮的结果是模板:
Handlebars.registerHelper("round_end_result", function() {
if (this.correct) {
var source = '';
if (this.guess == this.correct) {
console.log("correct guess");
var source = $("#round-end-correct").html();
} else {
var source = $("#round-end-wrong").html();
}
var template = Handlebars.compile(source);
var context = this;
var html = template(context);
console.log(html);
return html;
} else {
console.log("tie");
}
});
这里是描述正确的圆形模板(让我们说,它呈现的#圆钢,最终正确的模板):
<script id="round-end-correct" type="text/x-handlebars-template">
<div></div>
</script>
这里是获取呈现:
<div></div>
还不如HTML,但为文本。我如何得到它实际呈现HTML为HTML,而不是文本?
当使用2个参数的registerBoundHelper时,此方法对我无效。但“返回新的Handlebars.SafeString(结果);”为我工作。 – Presse
这是反应? – Sebastian