Lio*_*man 13 node.js express pug
使用Express.js,我想渲染从Jade模板到变量的局部视图.
通常,您将部分视图直接呈现给响应对象:
response.partial('templatePath', {a:1, b:2, c:3})
Run Code Online (Sandbox Code Playgroud)
但是,由于我在Socket.io服务器事件中,我没有"响应"对象.
有没有一种优雅的方法可以在不使用响应对象的情况下将Jade部分视图呈现给变量?
mat*_*ias 14
以下是快递3用户的这个问题的直接解决方案(现在应该广泛传播):
res.partial()已被删除,但您可以使用回调函数始终使用app.render(),如果响应对象不是Liors情况下的当前上下文的一部分:
app.render('templatePath', {
a: 1,
b: 2,
c: 3
},function(err,html) {
console.log('html',html);
// your handling of the rendered html output goes here
});
Run Code Online (Sandbox Code Playgroud)
由于app.render()是快速app对象的一个功能,因此它自然会知道配置的模板引擎和其他设置.它的行为与app.get()或其他快速请求事件上的特定res.render()相同.
也可以看看:
sta*_*er2 13
您可以手动编译Jade模板.
var jade = require('jade');
var template = require('fs').readFileSync(pathToTemplate, 'utf8');
var jadeFn = jade.compile(template, { filename: pathToTemplate, pretty: true });
var renderedTemplate = jadeFn({data: 1, hello: 'world'});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6799 次 |
| 最近记录: |