aem - 如何在 Coral UI 3 中检查标签添加事件
问题描述
我想在 Coral UI 3 中选择标签字段时捕获标签添加和删除事件。我已将其添加到类别为cq.authoring.dialog.all
.
(function($, $document) {
$document.on("dialog-ready", function() {
$('[data-fieldname="./cq:tags"]').on('itemadded', function(ev, value) {
console.log("Tag added");
});
});
})($, $(document));
of tag 字段是特定于sling:resourceType
Coral UI 3 的:cq/gui/components/coral/common/form/tagfield
但是这个事件没有被捕获。如果我将标签字段资源类型更改为特定于旧的 Touch UI sling:resourceType
,cq/gui/components/common/tagspicker
那么它可以工作。
如何在 Coral UI 3 标签字段中捕获事件?
解决方案
如果您查看/libs/cq/gui/components/coral/common/form/tagfield/render.jsp
(至少在 AEM 6.4 中),您会看到它呈现以下 HTML 结构:
<foundation-autocomplete>
<coral-overlay></coral-overlay>
<coral-taglist>
...
</coral-taglist>
</foundation-autocomplete>
foundation-autocomplete
的文档可以在这里找到:https ://helpx.adobe.com/experience-manager/6-4/sites/developing/using/reference-materials/granite-ui/api/jcr_root/libs/granite/ui/ components/coral/foundation/clientlibs/foundation/js/autocomplete/index.html
但是您感兴趣的coral-taglist
是这里的文档:https ://helpx.adobe.com/experience-manager/6-4/sites/developing/using/reference-materials/coral-ui/coralui3/Coral .TagList.html
珊瑚标签列表中的items
类型是Coral.Collection
其文档在此处:https://helpx.adobe.com/experience-manager/6-4/sites/developing/using/reference-materials/coral-ui/coralui3/Coral。 Collection.html#Coral.Collection:事件
所以你可以做类似的事情:
document.querySelector(<coral-taglist element selector>).on('coral-collection:add', function () {
// handle add
})
document.querySelector(<coral-taglist element selector>).on('coral-collection:remove', function () {
// handle remove
})
推荐阅读
- winapi - 创建可滚动对话框
- python - 在带有不相关模型的 Django 注释中使用子查询和 OuterRef
- python - 为什么使用 pandas DataFrame 导入数据后数据显示 NaN
- java - 有什么理由不应该重复调用 getter 方法?
- android - Appium 服务器(Appium 桌面)无法访问 (.apk) 或 (.aab) 中的 Android 文件
- c# - C# SQL 关闭阅读器
- azure - 使用自动安全性的 Azure 资源管理器服务连接:为资源组分配了哪些权限?
- msbuild - 在 Rider 中,如何使用不在项目根文件夹中的 .sln 文件?
- java - 有没有办法检查 Lambda 变量的显式类型?
- nuxt.js - Nuxt.js 服务器端渲染:启动服务器后数据未更新