2013-08-05 31 views
5

Tôi đang làm việc với Node.js và thể hiện. Giả sử tôi có một cặp file ngọc:Render khối đơn trong ngọc bích

template.jade

html 
    body 
    block page-content 

example.jade

extends template 
    block page-content 
     p 
      | Lorem ipsum yadda yadda 

Nếu tôi làm example.jade, tôi sẽ nhận được kết quả của việc cắm đoạn đó vào thẻ body của template.jade, thường là những gì tôi muốn. Vấn đề của tôi là tôi đang cố gắng sử dụng pushState và API lịch sử để tải các tệp này (tốt, không phải là các tệp -trese-), và khi thực hiện điều đó, tôi muốn một yêu cầu chỉ trả về nội dung của chính nội dung trang, không có phần còn lại của tài liệu html đầy đủ. Có cách nào đơn giản để nói với Jade để chỉ hiển thị các khối chính nó và không nhúng nó vào mẫu?


Điều tốt nhất tôi có thể đưa ra được thay đổi nó để là:

example.jade

extends template 
    block page-content 
    import example-content 

dụ-content.jade

p 
    | Lorem ipsum yadda yadda 

Nhưng dường như hackish để tạo thêm các tệp như thế này.

Trả lời

0

Jade hỗ trợ mã thực thi. Khi được sử dụng tiền tố - (không có đệm). Ví dụ, bạn có thể sử dụng nếu Statment trong chính mẫu bố cục ngọc:

- if (renderType && renderType == 'page') { 
    doctype 5 
    html 
     head 
     title= title 
     body 
- } 
     block content 

Render trang html như:

res.render('index', { title: 'StackOverflow', renderType: 'page' }); 

Render khối html như:

res.render('index', { title: 'StackOverflow', renderType: 'block' }); 

Và nếu bạn don Không thích sử dụng biến số renderType trong tất cả biểu thức hiển thị, sử dụng

res.locals(obj) //*Assign several locals with the given obj. The following are equivalent:* 

và đặt giá trị mặc định cho tất cả các yêu cầu. Nơi bạn bắt đầu thêm trình xử lý ứng dụng:

var logger = function(req, res, next) 
{ 
    res.locals({renderType:'page'}); 
    next(); 
}; 

app.use(logger); 
+0

Tôi không cho rằng có cách nào có điều kiện để bao gồm dòng "mở rộng mẫu"; đặt hai người khổng lồ nếu các khối bên trong tệp mẫu của tôi có vẻ đau đớn. – Retsam

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