2012-05-22 2 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

Я пробовал, но все же столкнулся с проблемами. Первое - это то, что если я хочу включить более одного другого шаблона. И второе заключается в том, что include html отображается как текст ('<' становится <), а не включается в качестве исходного текста. – drekka

0

Усы ребята вернулись с ответом. Я могу сделать это с помощью парциальных так:

{{> index.mu}} 

Внутри шаблона усов, а не пытаться сделать это в Node.js.

Смежные вопросы