Прежде всего извините, если этот вопрос уже задан где-то, но через несколько часов в Google я до сих пор не могу найти ответ.Liferay IPC прослушиватель работает несколько раз
Я довольно новичок в разработке портлетов (но у нас нехватка разработчиков, и я должен работать с ним время от времени), поэтому решение может быть чем-то тривиальным, но мне действительно не хватает опыта с Это.
Проблема: у меня есть два портлета на странице, и я стараюсь, чтобы один из них знал об изменениях в другом. Для этого я использую 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», он будет работать 3 раза с «id = 2».
Если у кого-то есть идеи, я был бы очень благодарен, поскольку я застрял почти целый день.
Благодарим вас заблаговременно и, пожалуйста, дайте мне знать, если вам нужна дополнительная информация.
вы можете добавить (точную) Liferay версию, что вы работаете с –
Конечно, извините ... Мы используем 7.x (7.0.2). –