【问题标题】:get all dialogs in page in AEM获取 AEM 页面中的所有对话框
【发布时间】:2016-02-16 06:55:34
【问题描述】:

是否有任何直接的方法来获取页面上拖动的所有组件的对话框对象。

例如:当我们加载页面时,如果页面上有任何像文本、图像这样的组件,我可以得到对话框。请推荐?

【问题讨论】:

  • 你能详细说明你想用这些对话框做什么吗?你所拥有的是一个'/libs/wcm/core/content/components.TIMESTAMP.json' XHR 请求,其中所有组件都与它们的对话路径一起列出。然后你必须解析你的 HTML 以根据它们的 css 类获取使用的组件,尽管这可能有点模棱两可,因为 css 类只包含“resourceType”的最后一部分,例如“文本图像”

标签: extjs aem


【解决方案1】:

是的,这是可能的。附加一个侦听器,该侦听器侦听 WCM 触发的 editablesready 事件。使用CQ.WCM#getEditables() 方法获取页面上的所有可编辑项,然后获取每个可编辑项的对话框(如果存在)。

下面的示例代码。

CQ.WCM.on('editablesready', function() {
    var editables = CQ.WCM.getEditables();

    for(var path in editables) {
        var editable = editables[path];
        try {
            console.log(editable.getEditDialog());
            //Do stuff
        } catch(e) { }
    }
});

【讨论】:

  • 您的解决方案。但我无法获取文本字段的值,任何对话框中存在的路径字段,就像我能够在现有对话框中获取一样,或者是否有任何其他获取值的方式
  • 值在页面加载时将不可用,而是在作者使用对话框的#loadContent() 方法打开任何对话框时请求它们。在幕后,它向节点发出 ajax 请求以获取所有属性和值,然后相应地填充对话框。
  • 感谢您的回复。它有助于理解场景。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多