3

我需要在关闭(隐藏)使用此javascript代码创建的模式窗口时执行一个通用函数(console.log):

    YUI().ready(function(A) {
        YUI().use('aui-base','liferay-util-window', function(A) {
            Liferay.Util.Window.getWindow(
                {
                    title : title,
                    uri: url,
                    dialog: {
                        cache: false,
                        modal: true
                    }
                }
            ).on('hide', function() {
                  console.log("Modal closed")});

        });
    });

' url ' 和 ' title ' 是从上面的代码传递的两个变量。
它不起作用。
有什么建议吗?

4

3 回答 3

3

在您将destroyOnHide对话框选项设置为true之前,这将不起作用。

默认情况下,它设置为 false,因此只会隐藏弹出窗口。

见下文:

YUI().ready(function(A) {
    YUI().use('aui-base','liferay-util-window', function(A) {
        Liferay.Util.Window.getWindow({
            title : title,
            uri: url,
            dialog: {
                destroyOnHide: true,
                cache: false,
                modal: true
            }
        }).after('destroy', function(event) {
                alert('DESTROY MODAL!');
        });
    });
});

然后您将能够像往常一样使用after()方法拦截破坏事件。

于 2014-03-19T11:27:29.393 回答
1

on('hide',用这个替换你的:

YUI().ready(function(A) {
    YUI().use('aui-base','liferay-util-window', function(A) {
        Liferay.Util.Window.getWindow(
            {
                title : title,
                uri: url,
                dialog: {
                    cache: false,
                    modal: true
                }
            }
      ) on: {
      close: function(event) {
              console.log("Modal closed")});

    });
});
于 2014-03-18T18:00:48.573 回答
0

对话框关闭时调用的正确事件是destroy事件。

LiferayWindow扩展A.Componentdestroy事件。事实上关闭一个窗口的正确方法是调用desploy()方法。

AUI().ready(function(A) {
    AUI().use('aui-base','liferay-util-window', function(A) {

        Liferay.Util.Window.getWindow(
            {
                title : title,
                uri: url,
                dialog: {
                    cache: false,
                    modal: true
                }
            }
        ).after('destroy', function() {
              console.log("Modal closed");
        });

    });
});
于 2014-03-18T20:44:36.503 回答