我在Adobe AEM / CQ网站上有一个Sightly组件,其中包含(JavaScript)UseAPI model。
在模型中,我有一个变量,它是在组件加载时计算出来的,并没有存储在JCR中(让我们说它是一个随机字符串)。
当作者打开Granite / Touch UI对话框时,会有一个使用JSP呈现的自定义Granite UI组件。 JSP可以访问JCR中组件的范围,但据我所知,它在访问组件时无法访问JavaScript模型返回的属性。
如何通过/存储此随机字符串'来自Sightly / JavaScript UseAP的变量,以便对话框的JSP可以访问它?
变量是上下文相关的,所以我不想将它存储在永久位置,例如JCR。一个很好的例子可能是外部Web服务的唯一标识符,对于该组件的特定呈现是唯一的。
答案 0 :(得分:0)
我可以想到几种方法,具有不同的适用性:
emptyText
属性:这只显示灰色/提示文本,不会设置任何可能呈现的内容。defaultValue
属性:这看起来非常诱人,但我不记得成功了。cq:template
:就像页面模板一样,您可以在将组件拖到parsys中时提供默认内容。这对于组件cq:include
进入页面/组件不起作用。此外,除非您在对话框中添加事件处理程序,否则它不会阻止作者完全删除该值。emptyText
属性,然后回到可能的模板值到"填写"内容。这需要一些初步的开发人员工作,但如果内容丢失,或者包含组件而不是拖动,则向作者提供提示,... YMMV。但是,如果值为"上下文相关"这些都不适合您。并且必须在某处/以某种方式计算。但如果计算它,那么它可能不应该被创作。