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这不是问题的关键。我正在寻找使用单个模板文件的方式。 –