currentStyle.<propertyName> 在 cq5 发布者中返回 null,这在作者中工作得很好
currentStyle.<propertyName> is returning null in cq5 publisher, which is working perfectly fine in author
我正在使用 sightly 访问组件的设计对话框属性。
像
<span data-sly-test="${currentStyle.delimiter}">${currentStyle.delimiter}</span>
但我得到的只是一个空字符串。
我尝试通过以下方法解决问题。
- 激活设计节点
- 正在删除页面并创建新页面。
- 正在删除组件并在页面上再次拖放组件。
- 我检查了 currentDesign 的 JSON 输出,我尝试访问的所有值都在那里可用。
你有两个选择
- 在预览/发布模式下通过以下方式获取设计值
currentDesign.getJSON(),解析返回值然后
从 Json 对象中键入您想要的值。
- 您可以通过从模板中删除一行代码来解决此问题
head.js。如果您从“/libs”之一继承任何模板
(视线)页面和 head.js 将有下面的代码行
所以你可以在你的模板中覆盖 head.js 并注释掉
在代码行下方。
if (wcmmode.disabled) {
request.setAttribute(Packages.com.day.cq.wcm.api.components.ComponentContext.
BYPASS_COMPONENT_HANDLING_ON_INCLUDE_ATTRIBUTE, true);
}
将此注释掉,一切恢复正常。
我正在使用 sightly 访问组件的设计对话框属性。 像
<span data-sly-test="${currentStyle.delimiter}">${currentStyle.delimiter}</span>
但我得到的只是一个空字符串。
我尝试通过以下方法解决问题。
- 激活设计节点
- 正在删除页面并创建新页面。
- 正在删除组件并在页面上再次拖放组件。
- 我检查了 currentDesign 的 JSON 输出,我尝试访问的所有值都在那里可用。
你有两个选择
- 在预览/发布模式下通过以下方式获取设计值 currentDesign.getJSON(),解析返回值然后 从 Json 对象中键入您想要的值。
- 您可以通过从模板中删除一行代码来解决此问题 head.js。如果您从“/libs”之一继承任何模板 (视线)页面和 head.js 将有下面的代码行 所以你可以在你的模板中覆盖 head.js 并注释掉 在代码行下方。
if (wcmmode.disabled) {
request.setAttribute(Packages.com.day.cq.wcm.api.components.ComponentContext.
BYPASS_COMPONENT_HANDLING_ON_INCLUDE_ATTRIBUTE, true);
}
将此注释掉,一切恢复正常。