【问题标题】:Render view into a variable in ExpressJS (for AJAX response)将视图渲染到 ExpressJS 中的变量中(用于 AJAX 响应)
【发布时间】:2013-08-06 14:40:49
【问题描述】:

我想将部分视图的内容(用 Jade 编写)加载到 Bootstrap 模式对话框中。为此,我使用 AJAX 调用。我可以只返回生成的 HTML 并将其加载到模式中,但是我需要额外的数据来处理渲染的视图。 我希望能够返回这样的对象(解析为 JSON):

response = {
  some_data: 'blablabla',
  some_more_data: [5, 8, 10, 67],
  my_html: '<div>HTML rendered from the Jade template</div>'
};

有没有办法做到这一点?现在我可以像这样返回呈现的 HTML:

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

但是我怎样才能将它存储在一个变量中以与更多数据一起返回,而不必进行更多的 AJAX 调用呢?

【问题讨论】:

    标签: ajax node.js express pug


    【解决方案1】:

    在 express 中,您可以使用 app.render 和回调来呈现视图并获取 html:

    app.render('employees', {layout: false}, function(err, html){
      var response = {
        some_data: 'blablabla',
        some_more_data: [5, 8, 10, 67],
        my_html: html
      };
      res.send(response);
    });
    

    【讨论】:

    • 似乎就是我要找的东西!但是有没有办法在不必传递整个app 参数的情况下做到这一点?上面的代码在 routes.js 文件中,我不确定如何使用/传递 app 那里...
    • 你可以通过res.app在你的路由中获取一个实例
    • 完美运行!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2011-07-26
    • 1970-01-01
    • 2015-10-05
    相关资源
    最近更新 更多