如何将自定义组件资源包含到AEM Social Communities把手模板中?

时间:2016-07-08 15:11:50

标签: handlebars.js aem sling sightly

在AEM 6.2中,我想在把手中做到这一点。

<sly data-sly-resource="${'title' @ resourceType='myproject/components/content/common/title'}"/>

具体来说,我覆盖了qnaforum.hbs并需要将其包含在那里。官方文档(link)说正确的方法是:

{{include this.id path="title" resourceType="myproject/components/content/common/title"}}

这样做有三个问题:

  1. 组件出现,但随后从页面中消失。
  2. 我收到警告&#34;当吊索包括在客户端时不支持强制资源类型&#34;
  3. 浏览器控制台中http://localhost:4502/content/myproject/qna-index-page/jcr:content/qna-parsys/qna/title.html发出失败的(404)GET请求(就像它试图在该路径上找到标题资源的渲染器一样)。
  4. 在同一个qnaforum.hbs文件中,Adobe为其订阅组件使用相同的include,它似乎工作正常。

    {{include this.id path="subscriptions" resourceType="/libs/social/subscriptions/components/hbs/subscriptions"}}
    

    此类型的包含仅适用于社交社区组件吗?如果是这样,我如何在把手模板中包含自定义资源?

1 个答案:

答案 0 :(得分:0)

我帮助了其他一些面临类似问题的人。我附加了代码片段,导致您遇到的问题(消失的QnA列表),以及修复此问题。

重叠的QnAForum组件看起来像这样

{{include this.id path="qnaforum-top" resourceType="custom/components/modules/qnaforum-top"}}
{{#if-wcm-mode mode="EDIT" }}
    <div class="scf-includeClientLib">{{includeClientLib js="cq.social.commons.widgets, cq.social.toggle"}}</div>
{{/if-wcm-mode}}
<div data-module="qna-index" class="scf scf-forum scf-qna " data-component-id="{{id}}" data-scf-component="social/qna/components/hbs/qnaforum">
    {{!-- Other QnA code --}}
</div>

但代码应该是这样的

{{#if-wcm-mode mode="EDIT" }}
    <div class="scf-includeClientLib">{{includeClientLib js="cq.social.commons.widgets, cq.social.toggle"}}</div>
{{/if-wcm-mode}}
<div data-module="qna-index" class="scf scf-forum scf-qna " data-component-id="{{id}}" data-scf-component="social/qna/components/hbs/qnaforum">
 {{!-- moving line1 from previous code snippet inside this parent div}}
 {{include this.id path="qnaforum-top" resourceType="custom/components/modules/qnaforum-top"}}
 {{!-- rest of QnA Code }}
</div>

我所做的更改是将第一个代码段中的第1行移到第5行。

JS控制台确实说缺少HTML,但它包含在内。控制台错误的原因是包括works.We尝试获取html,如果我们无法获取HTML,我们要求吊索解析组件。