嵌入式JavaScript(EJS) - 从路径动态设置视图

时间:2014-12-29 10:53:14

标签: node.js ejs embedded-javascript

我正在学习nodejs,我的.ejs模板文件非常标准(页眉,页脚,js-defaults等) - 唯一能改变HTML div中内容的东西。

我以为我可以在我的路线中设置一个变量并将其传递给视图(就像你将标题或其他变量一样),然后包含它 - 但它不起作用(例如下面的例子)。

在Ruby中你可以用“yield”来做到这一点,我也试着用EJS做同样的事。

感谢您花时间阅读(请原谅我对此事的无知)。

示例路线

app.get('/fish', function(req, res) {

res.render('fish' {
    title:"Fish",
    template:"view/partials/content/fish.ejs"
});

});

示例EJS

<!DOCTYPE html>
<html>
<head>
  <title><%= title %></title>
</head>
<% include views/partials/template/header.ejs %>
<body>
    <div class="container">
      <!-- Dynamic content here -->
      <% include template %> <!-- tries to load template.ejs %>
    </div>
</body>
<% include views/partials/template/footer.ejs %>
<% include views/partials/template/js-defaults.ejs %>
</html>

1 个答案:

答案 0 :(得分:2)

Looks like this is now supported in EJ S上。它是在v2.0.1: 2015-01-02中介绍的。新语法如下所示

 <!-- Dynamic content here -->
      <%- include(template) %>

要使其正常工作我必须通过设置禁用Express中的缓存:

app.set('view cache', false);