如何正确使用ejs中的部分视图?

时间:2011-04-19 02:09:50

标签: node.js partial-views express

我有一个网络应用程序,除了一个<div>之外,整个布局保持不变。目前,我只是使用路由来处理链接,重新加载layout.ejs文件的其余部分似乎很浪费,我希望更改的唯一内容是<div>

我的layout.ejs文件需要更改哪些内容?这是我目前的档案:

<!DOCTYPE html>
<html lan="en">
  <head>
    <title><%= title %></title>
    <link rel="stylesheet" href="/stylesheets/reset.css">
    <link rel='stylesheet' href='/stylesheets/style.css' />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
    <script src="/nowjs/now.js"></script>
    <script src="/javascripts/chat.js"></script>
  </head>
  <body>
    <div id="wrapper">
        <div id="header">
        </div>
        <div id="chat">
            <input type="text" id="text-input">
            <input type="button" value="Send" id="send-button">
        </div>
        <div id="content">
            <%- body %>
        </div>
        <div id="rooms">
        </div>
        <div id="footer">
            <div id="footer_links">
                <a href="/">Home</a> | <a href="/about">About</a> | <a href="/contact">Contact</a>
            </div>
        </div>
    </div>
  </body>
</html>

我正在考虑使用AJAX来使用它,但我听说过使用部分视图的一些好处。我根本不确定如何设置它。另外,我听说可以使用部分视图的WebSockets而不是AJAX。这是一个好主意,甚至可能吗?

对不起,这可能很简单。我在文档上遇到了困难。

谢谢!

1 个答案:

答案 0 :(得分:7)

我刚刚解决了。

<德尔> 你可以在视图中调用`partial(filename)`来加载partial。说我们使用EJS,`views /`中有三个文件:  1. layout.ejs  2. index.ejs  3. header.ejs index.ejs的内容是:      然后,启动服务器,浏览它,你会看到`header.ejs`被加载到`index.ejs`。

!!!更新

在快递版本&gt; = 3.0中,不再有partial()。但我们可以使用<% include xxx.file %>,或者只使用另一个模块:“express-partials”。请在Github上搜索。