我在我的示例中有一个组件,一个accordion,我想在它的content-area中用不同的模板重用它。
我所做的就是创作手风琴。
<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>现在我想在我的手风琴中呈现不同的模板(例如列表部分)
{{> accordion template=list data=about.services}} 但我总是得到一个错误“警告:不能找到部分未定义的使用”
我也尝试了帮助器查找,但也得到了相同的结果,但出现了错误。
一般来说,这是正确的方法吗?还是有其他方法来解决这个问题?
我正在使用grunt-assemble来构建静态站点。这是handlbars版本## v4.0.5 - 2015年11月19日
格雷果
发布于 2016-02-10 21:41:09
好的,我找到了一个解决方案;)
基于此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>https://stackoverflow.com/questions/35294072
复制相似问题