在客户端ejs中,我使用[% code %]
而不是<% code %>
来标记ejs代码,但我想在服务器端使用express执行相同操作。在客户端,我会做var template = new EJS({text: template_src, type:'['});
这是我的节点代码:
app.set('view engine', 'ejs');
app.register('.html', require('ejs'));
app.get('/', function(req, res){
res.render('index.html', { title: 'My Site' });
});
你在哪里设置&#34;类型&#34;参数,所以我可以改变这个选项
答案 0 :(得分:7)
自定义标签也可以全局应用:
var ejs = require('ejs'); ejs.open = '{{'; ejs.close = '}}';
你唯一需要做的就是在Express应用程序的开头复制这些行,就是这样 - 全局应用更改(将打开和关闭标记更改为你想要的任何内容)。
截至2016年7月20日的最新版本更新
从最新版本的EJS开始,不再使用自定义标签(请参阅https://github.com/mde/ejs/issues/55)。您所能做的就是将分隔符从默认%
更改为其他(delimiter
选项)。
有关于重新启用此功能的讨论。请参阅https://github.com/mde/ejs/issues/88和https://github.com/mde/ejs/issues/115
答案 1 :(得分:4)
如果你使用快递:
app.set('view options', {
open: '{{',
close: '}}'
});
答案 2 :(得分:1)
ejs v2.*使用其他选项:
var ejs = require('ejs'),
users = ['geddy', 'neil', 'alex'];
// Just one template
ejs.render('<?= users.join(" | "); ?>', {users: users},
{delimiter: '?'});
// => 'geddy | neil | alex'
// Or globally
ejs.delimiter = '$';
ejs.render('<$= users.join(" | "); $>', {users: users});
// => 'geddy | neil | alex'
您无法替换<
和>
字符。