在客户端呈现车把模板时,我在Adobe CQ模板上遇到错误
java.lang.IllegalArgumentException:找不到帮手:'if_gt' {{#if_gt data.item.num_comments 5}} ... {{/ if_gt}}
以下是无法渲染的车把模板
{{{{rawBlock}}}}
<ul class="comment-container"></ul>
<script id="comment-template" type="text/x-handlebars-template">
{{#each data.item}}
<li class="comment-copy">
<h2>
{{this.firstName}} {{this.lastName}}<span class="separator">|</span>{{this.address}}<span class="separator">|</span><time datetime="2016-10-01" pubdate="true">{{this.dateCreated}}</time>
</h2>
<p>{{this.content}}</p>
</li>
{{/each}}
</script>
<div class="load-more-blogs load-more"></div>
<script id="loadmore-template" type="text/x-handlebars-template">
{{#if_gt data.item.num_comments 5}}
<form action="/lm/the-taste-collection/blog/loadmore/" method="post">
<input type="hidden" name="xref_id" value="{{data.item.xref_id}}">
<input type="hidden" name="pages" value="6-26">
<a href="" class="submit" data-wt="true">LOAD MORE</a>
</form>
{{/if_gt}}
</script>
{{{{/rawBlock}}}}
以下是车把登记码。
Handlebars.registerHelper('if_gt', function (a, b, opts) {
if (a > b) {
return opts.fn(this);
} else {
return opts.inverse(this);
}
});
注意:这段代码在Adobe CQ 6.2平台上运行
答案 0 :(得分:0)
根据文档,Handlebars帮助必须也可以在服务器端实现为OSGi服务。
自定义帮助程序必须在服务器端和客户端实现,尤其是在传递数据时。对于SCF,大多数模板在服务器端进行编译和呈现,因为服务器在请求页面时为给定组件生成HTML。
https://docs.adobe.com/docs/en/aem/6-2/develop/communities/scf/handlebars-helpers.html#Server-side