AEM/CQ5如何共享组件值?

AEM/CQ5如何共享组件值?

问题描述:

我想要一个在多个页面呈现组件之间共享的头部组件。标题组件具有文本标签。如何使这个文本标签的值可用于所有页面组件。AEM/CQ5如何共享组件值?

我是否必须将<cq:include>中的路径设置为通用格式?

我可以通过在标题组件下创建与dialoghttp://dev.day.com/docs/en/cq/5-6/developing/components.html#Dialogs)类似的design dialog来归档该文件。您将文本标签字段添加到design dialog。然后输入该字段的值,将页面切换到design模式,然后单击组件顶部的Edit按钮。输入的值将可用于包含标题组件的所有页面。
注:design dialog将被命名为design_dialog

设计模式,如果正确理解,可以很好地工作。但是,它不会像页面激活一样复制内容,因此可能会让您的作者感到困惑。此外,共享模式仅限于精确的页面类型 - 这可能是您希望的粒度,也可能不是。

从CQ5的最佳实践(https://dev.day.com/docs/en/cq/current/developing/developing_guidelines_bestpractices.html),他们强烈鼓励段落系统(iparsys继承/共享)。 iparsys命名相同可以跨不同的页面模板共享(而设计模式只适用于单一模板类型)。

如果在模板中烘焙了组件(i,e页面渲染组件),那么您可以使<cq:include>路径属性指向某个存储数据的常见位置,并且所有页面都不考虑类型的模板可以获取配置的值。

您可以创建标题组件,然后在基本模板/页面中使用<cq:include>包含它。此基本模板/页面将由所有其他模板继承。通过这种方式,一旦在基本页面中配置了头部,就可以通过不同的模板/页面组件进行配置。

如果目标是“跨多个页面呈现组件”共享,则只有页面共享相同的呈现组件时,设计对话框才会有所帮助。 如果您希望在页面及其所有子页面中显示页眉组件,那么您应该使用iparsys。 如果您只想重用该头组件的属性,那么它需要有一个固定的路径(cq:include在页面组件中),然后您可以在其他页面呈现组件中引用您需要的属性。我不会建议这种方法,因为它打破了拥有一个组件的想法。一切都变得紧密相连。

你还可以做的是在页面级别(*父页面)保存这些属性,然后在子页面中使用InheritanceValueMap来读取这些属性。

这一功能现在在提供ACS AEM下议院作为共享组件属性 - http://adobe-consulting-services.github.io/acs-aem-commons/features/shared-component-properties.html

支持标准内容的激活和国际化(值存储在网页下方)和其他任何你所期待的内容。

+0

我发现这是特别有用的,当'iparsys'不足时可以节省大量的猜测。 –