この質問がすでにどこかで尋ねられている場合はまず申し訳ありませんが、グーグルで数時間経ってもまだ答えが見つかりません.
私はポートレット開発にかなり慣れていません (ただし、開発者が不足しており、時々それを使用する必要があります)、解決策は些細なことかもしれませんが、実際には十分な経験がありません。
問題は、1 つのページに 2 つのポートレットがあり、そのうちの 1 つに他のポートレットの変更を知らせようとすることです。これには IPC を使用します。最初のものには Liferay.fire 関数があります:
function fire(key,value){
Liferay.fire(
'category',{
id: key,
name: value
}
);
}
もう1つは、Liferay.on('category',function(category){...})
内部にajax呼び出しといくつかのレンダリングメソッドを含む関数があります。
上記のページにアクセスして対応するボタンをクリックすると、最初はすべて正常に機能します。ただし、このページから移動して戻ると、リスナーが 2 回実行されます。再度ナビゲート -> 3 回。など...しかし、ページをリロードすると(F5またはCTRL + F5で)、最初からやり直すため、さらにナビゲーションするまで、リスナーは1回だけ実行されます。
もう 1 つの奇妙な点は、関数が何回実行されても、入力パラメーターはすべて同じです。
たとえば、ページを離れて 3 回戻ってきて、最後に「id=1」のカテゴリを選択した場合、関数は「id=1」で 3 回実行されます。「id=2」を選択すると、「id=2」で 3 回実行されます。
ほぼ1日立ち往生しているので、誰かが何か考えを持っているなら、本当に感謝しています.
事前にどうもありがとうございました。さらに情報が必要な場合はお知らせください。