如何更改mustache.js的默认分隔符?

时间:2014-07-14 17:01:18

标签: javascript mustache delimiter

有人可以告诉我如何更改mustache.js的默认分隔符吗?默认分隔符为{{var}},我想将其更改为{|var|}

我有以下代码:

$('body').append(Mustache.render(this.template, data));

非常感谢

4 个答案:

答案 0 :(得分:6)

作为per the documentation

设置分隔符标记以等号开头,并将标记分隔符从{{和}}更改为自定义字符串。 请考虑以下设计示例:

* {{ default_tags }}
{{=<% %>=}}
* <% erb_style_tags %>
<%={{ }}=%>
* {{ default_tags_again }}

因此,对于您希望使用{|var|}的情况,您可以使用:

{{={| |}=}}

注意,这里是another example that changes the default delimiter to triple-mustaches

答案 1 :(得分:1)

我认为javascript示例也会有所帮助。

var template = $('#template').html();
var parseTags = new Array();
parseTags.push("[[");
parseTags.push("]]");
Mustache.parse(template,parseTags);   // optional, speeds up future uses
var rendered = Mustache.render(template, {name: "<%Luke%>"});

答案 2 :(得分:0)

在app.js中,使用以下代码段中的最后一行。前两个是供参考:

// view engine setup
app.set('views', path.join(__dirname, 'views/templates'));
app.set('view engine', 'hjs');
app.locals.delimiters = '{| |}';

答案 3 :(得分:0)

现在有一种更整洁的方法可以做到这一点,并且有据可查。 https://github.com/janl/mustache.js/

var customTags = [ '<%', '%>' ];

Mustache.render(template, view, {}, customTags);
//Either tell mustache to use them each time
Mustache.render(template, view, {}, customTags);
//Or override the tags property and Mustache knows what to do until you tell it otherwise
Mustache.tags = customTags;
var updateTemplate = '<small class="text-muted">Last updated <% updated_at %> by <% updated_by %></small>';
var html = Mustache.render(updateTemplate, {updated_at:'2019-11-18 14:54:20',updated_by:'abc'});