I need to excute a generic function (console.log) on closing (on hide) modal window created with this javascript code:
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' and 'title' are two variables passing from code above.
It doesn't work.
Any suggestion?
I need to excute a generic function (console.log) on closing (on hide) modal window created with this javascript code:
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' and 'title' are two variables passing from code above.
It doesn't work.
Any suggestion?
- is "hide" definitly the name of the event that close s the window? – JF it Commented Mar 18, 2014 at 17:58
3 Answers
Reset to default 3This will not work until you set destroyOnHide dialog option to true.
By default it is set to false, hence the popup will only be hidden.
See below:
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!');
});
});
});
Then you will be able to intercept destroy event with after() method as usual.
Hi replace your on('hide'
with this:
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")});
});
});
The right event called on dialog close is destroy
event.
Liferay Window
extends A.Component
which has destroy
event. In fact to close a Window the right way is to call desploy()
method.
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");
});
});
});