问题标签 [sightly]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - AEM Sightly 获取子节点的属性。
所以看起来很适合获取属性,但我想努力获取我定义的其他子节点的属性。
这是我的 PictureFill 组件结构的开始:
所以我卡住的部分是我将如何在移动、平板电脑、桌面和 extralg 节点上设置属性。
我想重用从 utils/Image.js 获得的尽可能多的 OOTB 功能,而不是重新构建它,这就是我走 Java 路线的原因。
aem - 在 i18n AEM 中生成动态密钥
我需要有一个动态密钥来获得 i18n 的价值。我正在使用。我将拥有密钥的初始部分,但最后一部分我必须动态附加,然后允许直观地获得相同的值。你能帮我吗?
sightly - 如何在没有 html 标签的情况下直接重定向页面。除了“元”命令
我需要知道重定向的发生。有人可以帮我写代码。我不想要 http://www.indiana.edu/~account/new-directory"> 因为这将在 html 的头部进行配置。
对我的要求在望。
aem - 从 cq-dialog 到 dom 模板 AEM 的多个属性
我依赖于从 AEM cq-dialog 获取 json 结构(或类似的东西)到渲染页面的 DOM,在那里我通过渲染页面的 JS 来获取它。
漂亮的页面模板如下所示,这里的数据标签是一个包含对话框字段的 json。如您所见,我手动输入了所有字段/属性:
我更喜欢能够更动态地获取所有标签:data-labels = ${properties.labels}
我可以将 cq-dialog 中的所有“标签”属性作为一个属性获取到模板吗?
我的对话框有几个字段,如下所示,tab1 上的所有属性都被认为是“标签”属性(因此应该添加到#myApp 元素的 data-labels 属性中)。
aem - data-sly-use、data-sly-resource、data-sly-include 和 data-sly-template 有什么区别?
data-sly-use
, data-sly-resource
, data-sly-include
, 和之间有什么区别data-sly-template
?我正在阅读文档Sightly
AEM
,我非常困惑。
据我所知:
data-sly-use
用于添加js/java
文件以与文档一起呈现data-sly-resource
用于注入组件data-sly-include
用于包含其他 html 文件 (?***?)
而且,data-sly-template 令人困惑,例如:
sling - 如何在 Sightly 中访问 data-sly-list 项的属性?
我将 Sightly 与 Sling 8(不是 AEM)一起使用。我有以下模板:
输出(对于单个孩子)是
我知道子资源上有一个 jcr:title 属性,因为我已经使用 HTTP 调用确认了它。
如何访问child
对象的属性?
sling - 仅当资源存在时,如何在 Sightly 模板中包含资源?
我想data-sly-resource
用来包含一个资源,但前提是它存在,例如
如果资源不存在,则脚本执行将失败并显示以下错误消息:无法找到 servlet 来处理资源 /content/blog/stats 。从请求进度列表中,我可以看到它是SyntheticResource
:
TIMER_START{resolveServlet(SyntheticResource, type=null, path=/content/blog/stats)}
仅当资源存在时,如何有条件地包含资源?
java - AEM 6.1 Sightly Java 类不会在构建时更新
我最近开始在 AEM 6.1 中使用 Sightly,它允许 Java 文件与组件位于同一文件夹中并使用 WCMUse 类。但是,我注意到,每当我执行涉及更改其中一个 Java 文件的 Maven 构建时,页面功能就像 Java 类没有更改一样运行,尽管 crx 中的 Java 文件确实包含更改。作为一种解决方法,我已经能够修改 crx 中的 Java 文件,保存它,然后修改它并再次保存以更新功能,但我的所有实例都没有该功能。
任何人都知道如何在构建期间或之后强制重新编译组件内的 Sightly Java?
aem - 添加第二个条目后,从 AEM 多字段面板对话框获取属性停止工作
我创建了一个 AEM 对话框,提示用户输入一组链接和标签。这些链接和标签存储在jcr节点中,用于生成菜单。
为了避免创建自定义 xtype,我使用acs-commons multifieldpanel解决方案,它使我能够在 fieldConfig 节点下嵌套子项。
这仅适用于 1 个标签/链接对,但是当我添加第二个时 - 无法再获取该属性,因为它返回的不是字符串,而是字符串哈希码。
jcr节点中multifieldpanel生成的属性是String类型,在CRXDE中检查时填写正确。当我尝试从 Sightly HTML 文件中获取值时,就会出现问题。
代码
定义.js:
日志输出
多字段面板中的 1 个元素
jcr节点变量内容
definitions: {"listText": "facebook", "listPath": "/content/en"}
日志输出
{"linkText":"facebook","linkPath":"/content/en"}
多字段面板中的多个元素
jcr节点变量内容
definitions: {"listText": "facebook", "listPath": "/content/en"},{"listText": "google", "listPath": "/content/en"}
日志输出
[Ljava.lang.String;@7b086b97
结论
一旦多字段面板具有多个组件并存储它,当访问属性时,节点返回字符串哈希码而不是属性的值。
一位同事指出我应该使用MultiFieldPanelFunctions
该类来访问属性,但我们正在使用 HTML+Sightly+js 并且不惜一切代价尝试避免使用 .jsp 文件。在 JavaScript 中,此功能不可用。有谁知道如何解决这个问题?
aem - 如何遍历 Sightly 中的列表列表?
我的 Sling 模型返回我创建的对象的列表列表。(TablegGridDataRow) 但我无法对其进行迭代。对象的类型是:
我这样做是为了迭代它。
但是当我试图提取第二个列表时,我得到了一个 NPE。
如果我使用字符串而不是 TableGridDataRow,它可以工作。