生活中的portlet间通信



我是新手。所以,我只是想解释一下我的场景。

实际上我的网页上有两个portlet -一个在左侧,另一个在右侧:

  • 左侧portlet包含两个超链接说demo1 &以及接下来。
  • 我有另外两个portlet说demo1Portlet &demo2Portlet。
  • 将显示"demo1Portlet",而不是右侧portlet违约。
  • 现在我要做的是,如果我点击demo2链接然后,右边portlet将改变,它将显示"demo2Portlet",如果我单击在demo1链接上,它将在右侧显示"demo1Portlet"。

有谁知道我怎样才能完成这个任务吗?

请尽快回复我。

我是新来的liftray,所以我不知道这是否可以通过IPC或没有它来实现。无论如何,请解释一下。

谢谢。

有几种不同的方式可以让portlet相互通信。大多数都包含在IPC和后代页面的文档中。

在您的情况下,您应该真正查看客户端页面:

和你的基本结构

<a href="javascript:void(0)" class="comm-demo">demo[number]</a>

你应该在"发送器portlet"上有这样的JS:

// you may need to have jQuery instead of $. Liferay may have its own 
// $ function which jQuery shouldn't mess with.
$( function () { 
      $('a.comm-demo').click( function(event) { 
           var txt = $(this).next().val(); // demo<number> 
           Liferay.trigger('click', {text: txt}); 
           return false; 
      }); 
 });

然后在"接收portlet"上:

 Liferay.bind( 
      'click', 
      function(event, data) { 
           var txt = data.text;
           // this will set all class-of-fields to have the text 
           // "demo<number from above>Portlet"
           $('.class-of-fields')[0].html(txt + "Portlet"); 
           // I believe there is a way to minimize/maximize a portlet by 
           // simulating a mouse click, but research would be needed to 
           // confirm.
 });

最新更新