具有Underscore模板的节点项目在EJS视图中存在冲突

时间:2013-09-05 05:44:57

标签: javascript node.js backbone.js underscore.js ejs

使用下划线模板进行骨干项目。在服务器上使用nodejs并使用EJS呈现视图。下划线模板使用与EJS相同的分隔符,因为下划线模板在我的.ejs视图中作为内联脚本标记我收到错误。 我尝试了以下解决方案:

app.set('view options', {
    open: '{{',
    close: '}}'
});

它似乎仍在尝试渲染下划线模板并抛出错误:

<h2><%= title %></h2>

title is not defined

似乎在EJS中使用自定义分隔符只是添加了接受而不是更改它们的标记类型。我也找不到像haml那样吐出原始html的方法。

1 个答案:

答案 0 :(得分:1)

underscore documentation表示使用_.templateSettings对象来覆盖分隔符的使用方式。所以像这样:

_.templateSettings = {
    evaluate: /\{\{(.+?)\}\}/g,
    interpolate: /\{\{=(.+?)\}\}/g
};