2012-05-22 69 views
0

我想將小鬍子模板分解成各種組件,以便我可以重複使用它們,並獲取通過node.js.返回的組合文本。我找不到這樣做的人。Node.js:使用多個小鬍子模板

我可以返回必須痛網頁暗示:

function index(request, response, next) { 
    var stream = mu.compileAndRender('index.mu', 
     {name: "Me"} 
     ); 
    util.pump(stream, response); 
} 

我只是無法弄清楚如何使一個模板,然後在另一個模板中使用它。我已經試過單獨渲染這樣的:

function index(request, response, next) { 
    var headerStream = mu.compileAndRender('header.mu', {title:'Home page'}); 
    var headerText; 

    headerStream.on('data', function(data) { 
     headerText = headerText + data.toString(); 
    }); 

    var stream = mu.compileAndRender('index.mu',   
     { 
      heading: 'Home Page', 
      content: 'hello this is the home page', 
      header: headerText 
     }); 
    util.pump(stream, response); 
} 

但問題是,頭沒有顯示在頁面呈現之前,即使我得到這樣的事情發生。標題被視爲顯示文本而不是html。

任何幫助表示讚賞。

回答

0

你需要把線var stream = ...util.pump(...headerStream.on('end', function() { /* here */ });,使它們在headerStream後跑已經發送的所有數據到你的data聽衆。

要包括原始的HTML,你必須使用三重括號:{{{raw}}}在你的模板爲http://mustache.github.com/mustache.5.html狀態。

+0

我嘗試過,但仍遇到問題。首先是如果我想包含多個其他模板。第二種是包含的html被呈現爲文本('<'變成<),而不是作爲原始文本包含。 – drekka

0

鬍子傢伙回來的答案。我可以用諧音這樣做:

{{> index.mu}} 

裏面的鬍子模板,而不是試圖做到這一點在node.js中