handlebars.js - AEM 社交社区 Handlebars 上下文

标签 handlebars.js aem

我正在尝试从 AEM Social Communities 的 Handlebars 框架内获取名为 userAdmin 的上下文。 userAdmin 上下文检查登录用户是成员(member)还是版主。

我们已经在/libs/social/console/components/hbs/sitenavbar/sitenavbar.hbs 的第 54 行中拥有此代码。使用下面的 userAdmin 上下文,仅当登录时才会显示管理链接用户是版主/社区管理员

{{#if userAdmin}}
    <li><a href="{{adminUrl}}">{{i18n "Administration"}}</a></li>
{{/if}}

问题

我无法在/libs/social/messaging/components/hbs/messagebox/buttons.hbs 中的第 36 行获取相同的 userAdmin 上下文,我想要在其中添加新消息按钮仅当登录用户是版主/社区管理员时

{{#if userAdmin}} //Here the context is not available within the buttons.hbs
   <input type='submit' class='actionbuttons' id='newMessageButton' name='{{properties.replyURL}}' value='{{i18n "+ New Message"}}' />
{{/if}}

您能否帮我找出一种方法,使 sitenavbar 中的上下文可用于任何其他 SCF 组件(例如消息框或论坛)。我还尝试过使用 {{../userAdmin}} 和 {{@root userAdmin}}

等选项

任何建议或帮助都会很棒。

最佳答案

此数据(或 getter)通过 SocialComponent 公开对于此资源类型。只有少数对象是全局隐式可用的。因此,您需要定义自己的社交组件并实现(或扩展现有组件,如果某个包导出它)这样的 getter。您可以引用 here 中的示例 scf 项目(例如 github )或者也可以查看 adobe documentation .

您可以通过附加 .social.json 来查找当前路径上下文中可用的所有对象(例如/content/community-components/en/forum/jcr:content/content/forum.social.json)。这将公开可在模板内使用的所有变量(上下文)。

关于handlebars.js - AEM 社交社区 Handlebars 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43082235/

相关文章:

javascript - backbone.js路由问题

meteor - 如何将 Handlebars isEq 助手转换为 Meteor 中的空格键?

javascript - Handlebars 模板中的 bool 逻辑

aem - aem中的自定义组用户,使用editor.html未显示页面内容

java - 我可以在 parsys 里面有一个 parsys 吗

java - 如何解决 AEM6.1 中的 "org.apache.sling.servlets.post.impl.operations.ModifyOperation Unable to create resource"错误?

forms - 如何修复 TypeError : Cannot read property 'name' from Express Nodemailer

javascript - 如何通过 Express 使用 Handlebars?

java - CQ5 - 吊带 :OsgiConfig service in Java class

jsp - AEM:如何列出固定目录(JSP)中的所有页面?