Как правильно использовать частичные представления в экспрессе с ejs? - PullRequest
4 голосов
/ 19 апреля 2011

У меня есть веб-приложение, в котором весь макет остается неизменным, кроме одного <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 для этого, но я слышал некоторые хорошие вещи об использовании частичных представлений.Я просто не уверен, как это настроить.Также я слышал, что вместо AJAX можно использовать WebSockets с частичным представлением.Это хорошая идея, или даже возможно?

Извините, это может быть просто.У меня проблемы с документацией.

Спасибо!

1 Ответ

7 голосов
/ 16 января 2012

Я только что решил это.

Вы можете вызвать `part (filename)` в представлении, чтобы загрузить частичное. скажем, мы используем EJS, и в `views /` есть три файла: 1. layout.ejs 2. index.ejs 3. header.ejs и содержание index.ejs: затем запустите сервер, просмотрите его, вы увидите, что файл header.ejs загружен в index.ejs.

!!! UPDATE

В экспресс-версии> = 3.0 больше нет partial(). Но мы можем использовать <% include xxx.file %> или просто использовать другой модуль: "express-partials". Пожалуйста, найдите его на Github.

...