0
我已经遍布Liferay网站,并没有找到有效的答案。我想要做的是在我的自定义portlet中有一个JavaScript函数,它将打开一个AUI对话框,并且该对话框显示来自完全独立的portlet的view.jsp内容。在Liferay中,一个portlet可以在新的AUI对话框中打开一个单独的portlet吗?
这里是我到目前为止有:
AUI().ready('aui-dialog','aui-dialog-iframe','liferay-portlet-url', function(A) {
var url = Liferay.PortletURL.createResourceURL();
url.setPortletId("my_portlet_that_I_want_in_a_dialog");
url.setWindowState('pop_up');
#foreach ($parameter IN $parameters.getSiblings())
url.setParameter("${parameter.data}", "${parameter.value.data}");
#end
window.myDialog = new A.Dialog(
{
title: 'My Dialog',
width: 640,
centered: true
}
).plug(
A.Plugin.DialogIframe,
{
uri: url.toString(),
iframeCssClass: 'dialog-iframe'
}
)
});
然后,在一个完全不同的Portlet,我有一个JavaScript函数调用:
window.myDialog.render()
该作品不多。但是,当出现对话框时,它总是空白或无限地显示“加载”动画。
可能与:在Firebug控制台,我看到
“衣:未加载:延迟任务”
不知道这是关系到当前的问题或不。谢谢您的帮助。
编辑:如果我将URL变量记录到控制台,然后将该URL复制并粘贴到新选项卡中,则该响应是完全空白的。这使我相信我要么没有正确生成URL,要么出现某种类型的portlet间权限问题。
可能是因为没有加载的“延迟任务”导致整个脚本中断。否则,你的代码看起来不错。 – 2012-01-17 21:20:09
我以为同样的事情,但无法找到任何有关如何加载的信息。 ROOT.war中Alloy文件夹下有一个延迟任务文件夹。 – nerdabilly 2012-01-17 21:22:10
我还发现http://issues.liferay.com/browse/LPS-13893可能是您的问题的原因,并看到它在RC1中修复。你使用的是什么版本的6.1? – 2012-01-17 21:24:10