我有一个“部分”模板,我想同时使用客户端和服务器端。
是否有一些方法或过滤器或与它非常相似的东西,include
除了它不是立即执行模板,而是返回一个客户端编译的函数,然后我可以将它分配给一个 JS 变量并在整个脚本中使用?
目前,我正在这样做:
exports.list = function(req, res){
res.render('file/list', {
...
fileItemTemplate: jade.compile(fs.readFileSync(path.join(req.app.get('views'),'file','file-item.jade')), {client: true})
});
};
然后在我的模板中我有:
ul#folder-list.thumbnails
each file in files
include file-item
...
script(type='text/javascript')
var fileItemTemplate = !{fileItemTemplate};
通过这种方式,我可以在页面加载时将一些项目呈现为 HTML,然后通过在数据进入时呈现部分内容来添加更多内容。
这可行,但感觉不是很干燥,因为我必须读取文件,处理路径中的文件路径和内容,然后基本上重新声明完全相同的变量客户端。
有这样做的好方法吗?
像这样的东西是理想的:
script(type='text/javascript')
var fileItemTemplate = !{compile file-item};