2

想要实现:我有两个页面,每个页面都有一个 portlet。单击链接时,我想从第一页 portlet 移动到另一个页面 portlet。为此,我写道:

<aui:script>
 function openCompanyPage(companyId) {   
     AUI().use(
             'liferay-portlet-url',
             'aui-resize-iframe',
             function(A) {
                 var navigationURL;

var portletURL = Liferay.PortletURL.createRenderURL();

                 var url = themeDisplay.getLayoutURL();               
                portletURL.setParameter("employerId", companyId);
                portletURL.setPortletId(A.one('#custSupportPortletId'));
                navigationURL = portletURL.toString();
                window.location = navigationURL;
            }
    );

</aui:script> 

但我收到错误,因为 Liferay.PortletURL 在粗体线上未定义。我已经提供了:

    <%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>
    <%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %>
<%@ taglib uri="http://liferay.com/tld/portlet" prefix="liferay-portlet"%>
<%@ taglib uri="http://liferay.com/tld/util" prefix="liferay-util"%>

请让我知道这可能的原因。

或者还有什么其他方法可以创建呈现 portlet URL。

4

1 回答 1

1

更新: 我通过蛮力解决了这个问题。

之前: <a href="" onclick="openCDPPage('${individual.individualId}')">${individual.individualName} 之后:

<a onclick="openCDPPage('${individual.individualId}')">${individual.individualName}</a>

脚本的变化:

<script>
     function openCompanyPage(companyId) {   
         AUI().use(**'liferay-portlet-url'**,
                 function(A) {
                     var navigationURL;
        var portletURL = Liferay.PortletURL.createRenderURL();
                     var url = themeDisplay.getLayoutURL();               
                    portletURL.setParameter("employerId", companyId);
                    portletURL.setPortletId(A.one('#custSupportPortletId'));
                    navigationURL = portletURL.toString();
                    window.location = navigationURL;
                }
        );

    </script> 

这解决了我的问题。我不确定这是否是问题的完美解决方案。请专家告诉我们。

于 2014-12-23T11:43:31.917 回答