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

发布于 2024-11-07 23:56:04 字数 118 浏览 1 评论 0原文

我有一个布局 - 导航菜单。在快速教程中,仅加载老式页面。整个旧页面被丢弃,并下载一个包含所有布局、视图和部分视图的新页面。我希望保留导航菜单。那么我该怎么做呢?

如果我对这个网页架构可能有误解,请指导我。

I've got a layout - navigation menu. In express tutorials theres only old-school pages loading. whole old page is thrown away and a new one is downloaded with all layouts,views and partial views. And i want navigation menu to stay. So how can i do that?

If i'm maybe getting smth wrong with this web pages architecture please guide me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

掩耳倾听 2024-11-14 23:56:04

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

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

如果您想查找与全页浏览器加载不同的Ajax请求,请使用req.xhr标志如此处记录

因此您甚至可以这样做

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

As @drachenstern said, you want to render only partial HTML fragments, not whole documents including the layout. You can tell express to skip the layout using:

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

If you want to look for Ajax requests as distinct from full-page browser loads, use the req.xhr flag as documented here

Thus you might even be able to do

res.render('sometemplate', {layout: !req.xhr});
箹锭⒈辈孓 2024-11-14 23:56:04

您还可以使用 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 }
    });
  });
};

You can also use res.partial() which is specifically for rendering partials.

Here is a sample of its usage, where 'browse.jade' is name of the template:

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 }
    });
  });
};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文