2014-01-28 4 views
2

Использование assemble Я действительно застрял на проблеме, которую я не могу исправить самостоятельно.собрать - отобразить список строк как части ручек частично

Я определяю связку widgets в секции YAML front matter и в том числе в части сторону {{> aside}}. Пока здесь все работает так, как ожидалось!

То, что я пытаюсь сделать сейчас, заключается в том, чтобы отображать виджеты списка и рендеринг моих партитур в шаблоне в стороне. Но так или иначе это не работает, как ожидалось.

SRC/шаблоны/макеты/топологий default.hbs

--- 
layout: src/templates/layouts/layout-default.hbs 
widgets: 
    - widget_link-list 
    - widget_welcome-message 
--- 

<section role="main"> 
    <h1>Template TwoCol</h1> 
    {{> body }} 
</section> 
<aside role="complementary"> 
    {{> aside}} 
</aside> 

SRC/шаблоны/частичными/aside.hbs

{{#each widgets}} 
    {{.}} 
{{/each}} 

Использование {{.}} печатает My выше определенного списка, как строка. Но если я попытаюсь сделать это {{> .}}, консоль выдает следующее предупреждение:

Предупреждение: Частичное. Не удалось найти Use -force для продолжения.

ответ

5

Я нашел способ, создав собственный помощник, который можно вызвать из любого шаблона Handlebars. Теперь я могу использовать {{renderPartial 'partialName' context}}.

В моем шаблоне:

var aside = ['my-widget-a','my-widget-b','my-widget-x']; 

{{#each aside}} 
    {{renderPartial this ../this}} 
{{/each}} 

модуля Javascript

module.exports.register = function (Handlebars, context) { 

    Handlebars.registerHelper("renderPartial", function (name) { 

     var fn, 
      template = Handlebars.partials[name]; 

     if (typeof template !== 'Function') { 
      // not compiled, so we can compile it safely 
      fn = Handlebars.compile(template); 
     } else { 

      // already compiled, just reuse it 
      fn = template; 
     } 

     var output = fn(context).replace(/^\s+/, ''); 

     return new Handlebars.SafeString(output); 
    }); 
}; 
+2

мы также имеем частичную помощника: https://github.com/helpers/handlebars-helper-partial Это будет тянуть YAML фронт вопрос из файла во время выполнения и объединить его с остальной частью контекста. – doowb