2014-10-18 73 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