0

口ひげのテンプレートをさまざまなコンポーネントに分割して、それらを再利用し、組み立てられたテキストを 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 ではなく表示テキストとして表示されます。

どんな助けでも感謝します。

4

2 に答える 2

0

がすべてのデータをリスナーに送信した後に実行されるように、行var stream = ...とを入力する必要があります。util.pump(...headerStream.on('end', function () { /* here */ });headerStreamdata

生のHTMLを含めるには、 http://mustache.github.com/mustache.5.html{{{raw}}}に記載されているように、テンプレートで 中括弧を使用する必要があります。

于 2012-05-22T03:56:55.933 に答える
0

口ひげの男たちは答えを返しました。次のようなパーシャルを使用してそれを行うことができます。

{{> index.mu}}

node.jsでやろうとするのではなく、口ひげのテンプレートの中で。

于 2012-05-24T02:08:20.677 に答える