node.js Express - 如何异步获取部分视图

时间:2011-05-15 05:27:44

标签: node.js views express

我有一个布局 - 导航菜单。在快速教程中,只有旧学校页面加载。丢弃整个旧页面并下载包含所有布局,视图和部分视图的新页面。我想要导航菜单留下来。那我该怎么做呢?

如果我对这个网页架构感到错误,请指导我。

2 个答案:

答案 0 :(得分:11)

正如@drachenstern所说,你想只渲染部分HTML片段,而不是整个文档,包括布局。您可以使用以下命令告诉express跳过布局:

res.render('sometemplate', {layout: false});

如果您要查找与整页浏览器加载不同的Ajax请求,请使用req.xhr标记as documented here

因此你甚至可以做到

res.render('sometemplate', {layout: !req.xhr});

答案 1 :(得分:0)

您还可以使用专门用于渲染部分的res.partial()。

以下是其用法示例,其中'browse.jade'是模板的名称:

exports.browse = function(req, res){
  var Contact = mongoose.model('Contact');
  Contact.where({}).asc('surname', 'given_name', 'org').run(function(err, results) {
    res.partial('browse', { 
        locals: { data: results }
    });
  });
};