【发布时间】:2014-02-19 09:02:45
【问题描述】:
我想知道是否可以使用带有不同标签的 ejs 进行双重渲染。
例如我有这个 ejs 模板
<@= test @>
<% for(var i=0; i<people.length; i++) { %>
<li>
<%= people[i].name %>
</li>
<%
}
%>
在 node.js 中,我使用默认标签 (
var people = [{"name":"Martin"}, {"name":"Jean"}];
exports.test = function(req, res) {
res.render('template', {
open:'<@',close:'@>',
people : people,
test : "Hello world"
})
}
这段代码将呈现
Hello world <% for(var i=0; i
<%= people[i].name %>
<% } %>
还有这个
var people = [{"name":"Martin"}, {"name":"Jean"}];
exports.test = function(req, res) {
res.render('template', {
people : people,
test : "Hello world"
})
}
将渲染
<@= test @>
Martin
Jean
我想找到一种方法来双重渲染它:
Hello world
Martin
Jean
谢谢
解决方案感谢 bnuhero
exports.test = function(req, res) {
var people = [{"name":"Martin"}, {"name":"Jean"}];
res.render( 'test',
{open:'<@', close:'@>', test : "Hello world"},
function(err, html) {
if (err) {
console.log(err);
res.send(500, err);
} else {
res.send(require('ejs').render(html, {people: people}))
}
});
};
【问题讨论】:
标签: node.js templates render ejs