首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >转义Mustache模板中的双花括号{{ ... }}。(在NodeJS中模板化模板)

转义Mustache模板中的双花括号{{ ... }}。(在NodeJS中模板化模板)
EN

Stack Overflow用户
提问于 2012-12-19 10:17:32
回答 7查看 41.1K关注 0票数 35

我正在尝试创建一个模板,如下所示:

代码语言:javascript
复制
{{{
{
  "name" : "{{name}}",
  "description" : "{{description}}"
}
}}}

{{{debug this}}}

代码语言:javascript
复制
<h1>{{name}}</h1>

我希望保留三个括号,但双括号要替换为传入的JSON。有人知道不用编写后处理JS代码就能做到这一点的最好方法吗?如果没有,有没有一个好的nodeJS模板引擎来处理这种类型的场景?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-12-19 16:33:54

您可以将分隔符切换为不会与三重八字胡冲突的分隔符,如erb样式的标记:

代码语言:javascript
复制
{{=<% %>=}}
{{{
{
  "name": "<% name %>",
  "description": "<% description %>"
}
}}}
{{{debug this}}}
<%={{ }}=%>

请注意,您可以在整个模板中多次执行此操作。任何时候遇到冲突时,选择一组新的分隔符:)

票数 51
EN

Stack Overflow用户

发布于 2013-12-14 00:01:30

this Question中所述,handlebars不支持更改分隔符。但是你可以像这样用反斜杠转义双花括号:

HTML:

代码语言:javascript
复制
... \{{ myHandlbarsVar }} ...
票数 75
EN

Stack Overflow用户

发布于 2015-02-11 04:54:59

您还可以在模板编译之前分配Mustache.tags = ["[[", "]]"];

http://jsfiddle.net/fhwe4o8k/1/

例如:

代码语言:javascript
复制
    $(function () {
        Mustache.tags = ["[[", "]]"];
        var template = $('#test').html();
        Mustache.parse(template);
        var rendered = Mustache.render(template, {test: "Chris"});
        $('#content-placeholder').html(rendered);
    });
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13944623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档