Handlebars中非HTML文件:如何阻止{{name}}字符串被模板解析?
解决Handlebars非HTML模板中输出原始{{name}}的方法
针对非HTML文件场景,HTML转义字符确实没用——因为这类文件不会自动解析HTML实体,只会原样输出{{name}}。好在Handlebars本身提供了专门的机制来输出未解析的Mustache标签,推荐两种方案:
方案1:使用原始块表达式(推荐)
Handlebars 1.0及以上版本支持原始块语法,直接包裹你想保留的原始内容即可,Handlebars会完全跳过对块内内容的解析:
{{{{raw}}}} {{name}} {{{{/raw}}}}
渲染后就会直接输出{{name}},完美适配非HTML文件场景。
方案2:自定义Literal Helper(兼容旧版本)
如果你的Handlebars版本较低不支持原始块,可以自定义一个简单的helper来实现:
// 注册自定义helper Handlebars.registerHelper('literal', function(options) { return options.fn(this); });
然后在模板中这样使用:
{{#literal}} {{name}} {{/literal}}
这个helper会直接返回块内的原始文本,不会触发Handlebars的解析逻辑。
两种方案都能让你在非HTML模板中直接输出{{name}}字符串,不用依赖HTML转义的方式。
内容的提问来源于stack exchange,提问作者orogers
相关产品推荐
相关产品推荐

