我希望有一个跨多个页面呈现组件共享的标头组件。标题组件具有文本标签。如何使此文本标签的值可用于所有页面组件。
我是否必须将<cq:include>
中的路径设为通用格式?
答案 0 :(得分:4)
设计模式,如果理解得当,可以很好地运作。但是,它不会以与页面激活相同的方式复制内容,因此可能会使您的作者感到困惑。此外,共享模型仅限于确切的页面类型 - 可能是您想要的粒度,也可能不是。
从CQ5的最佳实践(https://dev.day.com/docs/en/cq/current/developing/developing_guidelines_bestpractices.html),他们强烈鼓励段落系统(iparsys继承/共享)。名称相同的iparsys
可以在不同的页面模板之间共享(而设计模式仅适用于单个模板类型)。
答案 1 :(得分:3)
我可以通过在标头组件下创建类似于design dialog
(http://dev.day.com/docs/en/cq/5-6/developing/components.html#Dialogs)的dialog
来存档。您将文本标签字段添加到design dialog
。要输入字段的值,请将页面切换到design
模式,然后单击组件顶部的Edit
按钮。输入的值将可用于包含标题组件的所有页面
注意:design dialog
将命名为design_dialog
答案 2 :(得分:3)
此功能现在在ACS AEM Commons中作为共享组件属性提供 - http://adobe-consulting-services.github.io/acs-aem-commons/features/shared-component-properties.html
支持标准内容激活和国际化(主页下方存储的值)以及您希望从内容中获得的任何其他内容。
答案 3 :(得分:0)
如果组件在模板(i,e页面呈现组件)中被烘焙,是的,您可以使<cq:include>
路径属性指向存储数据的一些常见位置,并且所有页面都是无关的of,模板的类型可以获得配置的值。
答案 4 :(得分:0)
您可以创建标题组件,然后使用基本模板/页面中的<cq:include>
将其包含在内。此基本模板/页面将由所有其他模板继承。这样,在基页中配置的标题可以通过不同的模板/页面组件获得。
答案 5 :(得分:0)
如果目标是“跨多个页面渲染组件”共享,则设计对话框仅在页面共享相同的渲染组件时才有用。 如果要在页面及其所有子页面中显示标题组件,则应使用iparsys。 如果您只想重用该标头组件的属性,则需要具有固定路径(cq:包含在页面组件中),然后您可以在其他页面呈现组件中引用所需的属性。我不建议采用这种方法,因为它打破了拥有组件的想法。一切都变得紧密耦合。
您还可以做的是在页面级别保存这些属性(某些顶级父页面),然后在子页面中使用InheritanceValueMap来读取这些属性。