2012-06-08 40 views

Trả lời

3

Express.js lá cho phép công cụ tạo mẫu nếu tôi nhớ chính xác. Vì vậy, nếu ejs không hỗ trợ bố cục thì bạn sẽ không may mắn.

+0

Nó được cho là hỗ trợ bố trí theo tài liệu của express, nhưng tôi vẫn chưa làm cho nó hoạt động chính xác. –

+0

3.x bố cục đã xóa. Các hướng dẫn trên trang web là 2.x. – Pickels

+0

Bạn có thể sử dụng ejs-locals để xác định bố cục. – aredridel

5

Bạn có thể làm điều đó với mô-đun này ...

https://github.com/aseemk/express-blocks

layout.ejs

<html> 
    <body> 
     <% include nav %> 
     <h1><%= title %></h1> 
     <%- body %> 
    </body> 
</html> 

login.ejs

<% layout('layout') -%> 
<form>...</form> 

nav.ejs

<nav> 
    <% if (session.logged_in) { %> 
    <a href="/account">account</a> 
    <a href="/logout">logout</a> 
    <% } else { %> 
    <a href="/signup">signup</a> 
    <a href="/login">login</a> 
    <% } %> 
    <a href="/">home</a> 
</nav> 

Tôi đã sử dụng các phần thể hiện nhanh, nhưng tôi thấy các khối thể hiện tốt hơn cho các ej và thể hiện 3.x. sử dụng partials là một nỗi đau để phải vượt qua dữ liệu trong mọi lúc. Với <% include whatever %>, dữ liệu đã có sẵn.

Trong tập tin tuyến đường của bạn, bạn có thể làm như thế này:

exports.login.get = function(req, res){ 
    res.locals.session = req.session; 
    res.render('login', { title: 'Login to your account' }); 
}; 
9

Trên thực tế sau khi tốc 3.x là không hỗ trợ layout.ejs, nếu bạn muốn sử dụng cách bố trí, các bước sau đây cần được thực hiện bởi chính mình :

  1. add phụ thuộc "express-partials": "*" trong bạn package.json tập tin
 
    "dependencies": { 
     "express": "3.1.0", 
     "ejs": "*", 
     "express-partials": "*" 
    } 
  1. thực hiện npm install để cài đặt phiên bản mới nhất của express-partials
  2. đòi hỏi express-partials trong bạn app.js
    var partials = require('express-partials');
  3. thêm mã app.use(partials()); dưới app.set('view engine', 'ejs'); trong app.js tập tin

sau đó, bạn có thể thiết kế bạn layout.ejs và thêm <%- body%> chặn trong tệp layout.ejs của bạn và điều đó đủ và wo rking tốt.

+0

Người đàn ông đẹp ........ –

Các vấn đề liên quan