Dynamic 车把动态部分名称

Dynamic 车把动态部分名称,dynamic,handlebars.js,partials,Dynamic,Handlebars.js,Partials,在我的示例中,我有一个组件accordion,我想在它的内容区域中使用不同的模板来重用它 我所取得的成就是创作了手风琴 <div class="c_accordion"> {{#each data}} <div class="c_accordion__item"> <h3 class="c_accordion__headline">{{this.title}}</h3> <div class="

在我的示例中,我有一个组件accordion,我想在它的内容区域中使用不同的模板来重用它

我所取得的成就是创作了手风琴

<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>
但我总是得到一个错误“警告:未定义的部分找不到使用”

我还尝试了帮助器查找,但也得到了相同的结果,但有一个错误

一般来说,解决这个问题的方法是正确的还是其他方法

我正在使用grunt Assembly构建静态站点。这是Handlbar版本##v4.0.5-2015年11月19日

gregor

好的,我找到了一个解决方案;)

基于此,

//插入手风琴
{{>accordion partial=“list”data=about.services}
//手风琴
...
{{dynamicPartial../partial this.content}
...
//助手动态部分
module.exports.register=函数(把手,上下文){
Handlebar.registerHelper('dynamicPartial',函数(名称、数据){
var partial=把手。partials[名称];
var template=handlebar.compile(部分);
var输出=模板({“data”:data});
返回新把手。安全字符串(输出);
})
};
//list.hbs
    {{{#每个数据}
  • {{this}}
  • {{/每个}}
{{> accordion template=list data=about.services}} 
//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>