如何在 Handlebars 模板中使用 {{{{raw-helper}}}}?

4
我是一个有用的助手,可以翻译文本。
我有一个运作良好的Handlebars模板。我想在其中添加以下内容:
<script id="someTemplate" type="text/x-handlebars-template">
    <div class="editStuff">
        <span {{#if aThing}} data-someKey="{{anotherThing}}" {{/if}}>
            {{aThirdThing}}
        </span>
    </div>
</script>

当处理handlebars文件时,这显然会被渲染出来。所有的{{}}最终都变成空白,不好。我发现了


{{{{raw-helper}}}}

块助手,并像这样尝试了一下:

{{{{raw-helper}}}}
<script id="someTemplate" type="text/x-handlebars-template">
    <div class="editStuff">
        <span {{#if aThing}} data-addresskey="{{anotherThing}}" {{/if}}>
            {{aThirdThing}}
        </span>
    </div>
</script>
{{{{/raw-helper}}}}

但这样会将整个脚本块从HTML中移除。
根据Handlebars文档的说明,原始块中的任何内容都应该保持不变。

1
如果这不是内置的帮助程序,我也尝试在文档页面上的示例中注册处理程序。但并没有成功。很难确定哪些功能是 Handlebars API 中已有的或者还需要自定义实现。 - Dakine83
1个回答

7

raw-helper并未内置。在注册模板后,它应该正常工作。

Handlebars.registerHelper('raw', function(options) {
  return options.fn(this);
});

{{{{raw}}}}
<script id="someTemplate" type="text/x-handlebars-template">
    {{test}}
</script>
{{{{/raw}}}}

3
为什么它没有被内置?在文档中提及似乎有点傻。 - kierans

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接