1
如果請求已經通過AJAX做,我想從page1.jade只發送塊內容,如果是正常的得到它應與該塊內置layout.jade回答Node.js,Jade/Pug,如何提供全部和部分模板?
如果請求已經通過AJAX做,我想從page1.jade只發送塊內容,如果是正常的得到它應與該塊內置layout.jade回答Node.js,Jade/Pug,如何提供全部和部分模板?
玉不支持conditional layout switch:
if type=='get'
extends layout
block content
p This is block content
這將使用佈局呈現頁面,而不考慮變量名稱。
方法1
一個簡單的方法是定義在一個單獨的文件塊的內容,包括它在你的page1.jade,您可以訪問該塊獨立即可。
layout.jade
html
head
title My Site - #{title}
block scripts
body
block content
block foot
page1.jade
extends layout
block content
include ./includes/block.jade
包括/ block.jade
p This is the block content
這WOU LD是處理您的請求路由文件
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
router.get('/block', function(req, res, next) {
res.render('includes/block', { title: 'Express' });
});
修改它來處理Ajax /瀏覽器請求的方式。
方法2
其他清潔方式將修改您layout.jade本身條件
layout.jade
if type=='get'
html
head
title My Site - #{title}
block scripts
body
block content
block foot
和傳球變量從您的路由器,而每一次呈現在同一頁面:
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express',type:'get' });
});
router.get('/block', function(req, res, next) {
res.render('index', { title: 'Block Express' });
});
http://stackoverflow.com/a/28540611/1643143 – avck
@ avck33這不是問題的關鍵。我正在尋找使用單個模板文件的方式。 –