EJS动态包括

n0r*_*0rd 4 javascript ejs node.js

我试图使用EJS动态地包含我的部分内容.我渲染一个这样的模板:

路由器

router.get('/', noteController.getNotes, (req, res, next) => {
    return res.render(template, {'page':'all'})
})
Run Code Online (Sandbox Code Playgroud)

并且我试图在此模板中包含部分变量,基于变量"page".

template.ejs

<% include %><%= page %><% .ejs %>
Run Code Online (Sandbox Code Playgroud)

然而,这不起作用.我尝试过多种方法,但无济于事.任何帮助深表感谢.

num*_*8er 8

只是:

<%- include(page) %>
Run Code Online (Sandbox Code Playgroud)

或者如果它在partials文件夹中:

<%- include('partials/'+page) %>
Run Code Online (Sandbox Code Playgroud)



PS不要忘记将视图引擎声明为ejs:

app.set('view engine', 'ejs');
Run Code Online (Sandbox Code Playgroud)


官方来源:

<% - 将未转义的值输出到模板中

您可能希望将原始输出标记(<% - )与include一起使用,以避免双重转义HTML输出.