2014-10-18 74 views
0

我是新来的node.js,jade,& express,所以请耐心等待。使用jade,express和node.js渲染模板问题

我有以下文件。

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. 用户打开并加载该网站。他们看到最初的索引页触发调用休息 阿比getReports
  2. 诉讼的形式
  3. 用户点击通话将呈现子模板应该只是追加补充说:“孩子”来索引的内容部分。玉。

但是,我没有看到这一点。我想我想了解追加部分模板的最佳方法,该模板呈现给原始index.jade页面。

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

通常情况下,如果没有jade模板文件,我只会使用javascript和简单的方法,这将只是客户端java代码触发ajax调用,并在响应中使用DOM来追加处理HTML数据,但我想利用玉。

任何意见赞赏, 谢谢, d

回答

1

以下是一些可以帮助你,

  1. res.render("child.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 
    
+0

感谢您的解决方案!。 – darewreck 2014-10-18 19:20:11

+0

你也知道如何在客户端渲染模板吗?在上面的例子中,很难找到线上的东西来引用客户端和服务器端的玉石模板渲染? – darewreck 2014-10-18 19:21:03