【问题标题】:Issue with Rendering templates with jade, express, and node.js使用jade、express和node.js渲染模板的问题
【发布时间】:2014-10-18 06:23:59
【问题描述】:

我是node.js、jade和express的新手,请多多包涵。

我有以下文件。

layout.jade

index.jade

extends layout
block content
    label initial layout
    form(action="/getReports", method="GET", enctype="multipart/form-data")
        input(type='submit', value='Generate Report')

child.jade

extends index
block append content
    label added child

server.js

app.get('/getReports', function(res, req)
{
    res.render("child.jade");
});

流程:

  1. 用户打开并加载站点。他们看到初始索引页
  2. 用户点击表单会触发调用 Rest 的操作 API 获取报告
  3. 调用将呈现子模板,该子模板应该只是将“添加的子”附加到 index.jade 的内容部分。

但是,我没有看到这个。我想我正在尝试了解将部分模板附加到原始 index.jade 页面的最佳方法。

我遇到的问题是这段代码是客户端是 index.jade 页面。该按钮触发对服务器的操作调用。服务器处理数据,然后目标是获取数据并处理要在 index.jade 页面上显示的模板。

通常,如果没有玉模板文件,我只会使用 javascript 和天真的方式,即让客户端 java 代码触发 ajax 调用,并在响应中使用 DOM 将 html 附加到处理后的数据但我想利用翡翠。

感谢任何建议, 谢谢, D

【问题讨论】:

    标签: node.js express rendering pug


    【解决方案1】:

    这里有一些可能对你有帮助的建议,

    1. res.render("child.jade"); 中,不要包含jade 文件的扩展名.jade。只需res.render("child"); 即可。

    2. 在您的“child.jade”中,block append content 是错误的,因为没有该名称的块。如果你想在索引页面中渲染一些部分,那么你应该在“index.jade”中指定一个块。让它喜欢,

      extends layout
      block content
         label initial layout
            form(action="/getReports", method="GET", enctype="multipart/form-data")
            input(type='submit', value='Generate Report')
         block child
      

      和“child.jade”来,

      extends index
         block child
            label added child
      

    【讨论】:

    • 另外你知道如何在客户端渲染模板吗?很难在网上找到参考玉模板渲染在客户端和服务器端的例子,就像上面的例子一样?
    猜你喜欢
    • 2015-10-21
    • 2014-06-01
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多