Handlebars.js使用noEscape选项禁用转义

Handlebars.js disable escaping with noEscape option?

本文关键字:转义 选项 noEscape js 使用 Handlebars      更新时间:2023-09-26

我已经对所有内容进行了预转义,所以我不想在任何地方使用三重隐藏,而是想全局禁用车把转义。快速搜索显示了一个类似的功能,我可以在我的车把中看到,但我不知道如何打开它

拉取请求如下:https://github.com/wycats/handlebars.js/pull/121

我曾尝试在代码中添加Handlebars.Compiler.options.noEscape=true,但它总是返回未定义的选项。即使在定义了选项之后,它也不会拿起它。有人知道我应该如何在脚本文件中启用此选项吗?感谢

试试这样的东西:

var template = Handlebars.compile(source, {noEscape: true});

当您只希望模板中的一个变量不被转义时,使用"三重存储"{{{是另一种选择:

Handlebars HTML转义由{{表达式}}返回的值。如果您不希望Handlebars转义一个值,请使用"三重存储",{{{.

https://handlebarsjs.com/

假设

var template = "This is {{target}}";
var target = "user's pictures";
var result = Handlerbars.compile(template, {noEscape:true})({target:target});

现在尝试打印结果。目标字符串值中有一个撇号。不会因编码字符串而改变。如果要从编译函数中删除{noEscape:true},则它将发生更改。

{noEscape:true}在使用handlersv4.0.5时没有正确编译模板。

"{{}"非常适合我。

这是正确的语法:

var handleBars=handleBars.Create(新HandlebarsConfiguration{NoEscape=true});

var template=handleBars.Compile(sharingTemplate.template);

var result=模板(项);