2013-01-07 59 views
1

假設我正在組織比較披薩店的應用程序。 我有我的比薩餅店列表中選擇一個模板,看起來像這樣:如何用express來管理服務器端和客戶端的jade模板?

table 
    tr 
     th Rank 
     th Name 
     th Date Ordered 
     th Address 
     each shop in shops 
      tr 
       td= shop.rank 
       td= shop.name 
       td= shop.dateOrdered 
       td 
        each line in shop.address 
         span #{line} <br/> 

和每個頁面的佈局應該是這樣的:

doctype 5 
html 
    head 
     title Pizza Wars 
     link(rel='stylesheet', href='/style/style.css') 
    body 
     #wrapper 
      h1.main-title.section.group Pizza Wars 
      div.section.group 
       include side-menu 
       block content 

當用戶在「請求頁/商店'我想用頁面的完整html做出迴應。當用戶已經在'/'並且他們在頁面中導航到'/ shops'時,我想請求JSON,並且渲染模板客戶端(我使用backbone.js,如果這是任何感興趣的話) 。

由於Express不再支持佈局,我懷疑我必須在我的shops.jade文件中使用extend layout.jade,但是這樣做的問題是我的shops.jade文件會渲染整個頁面的html ,因此是無用的客戶端,我只希望它呈現商店的表格。

我考慮過的另一個選擇是在我的服務器代碼中調用res.render,一個用於渲染商店列表,另一個用該列表作爲內容渲染布局。該解決方案顯然是次優的。

有沒有人見過/找到一種方法來使用玉來迎合這兩種情況?

回答

0

我正在使用的解決方案是在頁面加載時在body內部不發送標記,並在該響應中包含客戶端正在查看的任何頁面的json數據。然後我讓骨幹處理呈現html。這似乎在骨幹應用程序中很常見。

相關問題