在AEM 6.1中打开对话框时,对话框就绪事件不会触发?

时间:2018-04-11 16:00:07

标签: aem cq5 aem-6 aem-touch-ui

我最基本的问题是在带有动态选项的触摸UI对话框中加载选择字段。 这些选项来自外部URL,通过网络服务,所以请不要在这里提到数据源。

使用optionsProvider在经典UI中很容易。

在触摸UI中,我试图编写一个脚本,通过AJAX ON DIALOG加载从外部Web服务获取数据,并在选择字段中设置这些选项。

我的dialog.ready事件没有被调用。

我在触控界面看到的另一个恼人的问题是,当我将鼠标悬停在某个组件上时,我无法看到编辑选项。它只显示"删除"和"组"选项。而这仅适用于某些组件。我必须双击才能打开对话框。 请看图片 enter image description here

另请参阅下面的代码以准备对话框。

(function ($, $document, $window) {
"use strict";
console.log('Namaste'); // works

$document.on("dialog-ready", function() {

    console.log('Hello'); // Does not work/fire when dialog opens

     $window.adaptTo("foundation-ui").alert("Open", "Dialog now open, event [dialog-ready]");
    if(comm) {
          var serviceUrl = xyz.config.baseUrl + '/public/movies';
          $.ajax({
                url: serviceUrl,
                cache:false,
                success: function(result){
                    console.log('Result'+JSON.stringify(result));
            }
          });
    }

});

$document.on("dialog-closed", function() {
    $(window).adaptTo("foundation-ui").alert("Close", "Dialog closed, event [dialog-closed]");
});

})($, $(document), $(window));

1 个答案:

答案 0 :(得分:2)

要在对话框打开时调用您的方法,您应将客户端库的类别设置为“ cq.authoring.dialog

这是一个适用于所有触摸UI对话框的全局类别。