2016-02-09 6 views
1

У меня есть компонент в моем примере аккордеона, и я хочу повторно использовать его с разными шаблонами внутри его контент-области.ручные динамические частичные имена

То, что я достиг, это создать аккордеон.

<div class="c_accordion"> 
    {{#each data}} 
    <div class="c_accordion__item"> 
     <h3 class="c_accordion__headline">{{this.title}}</h3> 
     <div class="c_accordion__content"> 
      {{../template}} <-- renders [object object] 
      {{> ('../template') data=this.content}} <-- there i want to render diffrent templates 
      {{> list data=this.content}} <-- this works without problems 
     </div> 
    </div> 
{{/each}} 
</div> 

А теперь я хочу сделать разные шаблоны insinde мой аккордеон (например, список частично)

{{> accordion template=list data=about.services}} 

Но я всегда получаю сообщение об ошибке «Предупреждение: Частичное неопределенными не может быть найден Использование»

Я попробовал это также с помощью вспомогательного поиска, но также тот же результат с ошибкой.

Как правило, это правильный способ или существуют другие подходы к решению этой проблемы?

Я использую grunt-сборку для создания статических сайтов. это является handlbars версия ## v4.0.5 - 19 ноября, 2015

Грегор

ответ

-1

хорошо я нашел решение;)

на основе этого assemble - Render a list of strings as Handlebars partial

//insert the accordion 
{{> accordion partial="list" data=about.services}} 

//accordion.hbs 
<div class="c_accordion"> 
    ... 
    {{dynamicPartial ../partial this.content}} 
    ... 
</div> 

//helper dynamicPartial 
module.exports.register = function (Handlebars, context) { 
    Handlebars.registerHelper('dynamicPartial', function(name, data) { 
     var partial = Handlebars.partials[name]; 
     var template = Handlebars.compile(partial); 
     var output = template({"data": data}); 
     return new Handlebars.SafeString(output); 
    }) 
}; 

//list.hbs 
<ul> 
    {{#each data}} 
    <li>{{this}}</li> 
    {{/each}} 
</ul> 
Смежные вопросы