首先很抱歉,如果这个问题已经在某个地方被问过,但是在谷歌上几个小时后我仍然找不到答案。
我是 Portlet 开发的新手,(但我们缺乏开发人员,我必须时不时地使用它),所以解决方案可能是微不足道的,但我真的没有足够的经验。
问题是我在一个页面上有两个 portlet,我试图让其中一个知道另一个的更改。为此,我使用 IPC。在第一个中,我有一个 Liferay.fire 函数:
function fire(key,value){
Liferay.fire(
'category',{
id: key,
name: value
}
);
}
在另一个我有一个Liferay.on('category',function(category){...})
函数,里面有一个 ajax 调用和一些渲染方法。
现在,如果我访问提到的页面并单击相应的按钮,起初一切正常。但是,如果我从该页面导航并返回,侦听器将运行两次。再次导航-> 三次。等等...但是如果我重新加载页面(使用 F5 或 CTRL+F5),它会重新开始,所以在进一步导航之前,侦听器只运行一次。
另一个奇怪的事情是,无论函数运行多少次,每次输入的参数都是一样的。
例如,如果我离开页面并返回 3 次,而上次我选择了 'id=1' 的类别,那么该函数将运行 3 次 'id=1'。现在,如果我选择“id=2”,它将使用“id=2”运行 3 次。
如果有人有任何想法,我将非常感激,因为我现在被困了将近一天。
非常感谢您,如果您需要任何进一步的信息,请告诉我。