2014-12-20 4 views
2

Хотите реализовать: У меня есть две страницы с одним портлетом. При щелчке ссылки я хочу перейти из портлета первой страницы в другой портлет страницы. Для этого я написал:Liferay.PortletURL не определено

<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"%> 

Пожалуйста, дайте мне знать возможную причину этого.

OR Каков другой способ создания URL-адреса портлета Render.

+0

Не могли бы вы подтвердить, что вам не хватает $ theme.include ($ top_head_include) в вашей теме – Gautam

+0

Можете проверить, есть ли какая-либо ошибка JavaScript на странице? –

+0

Только одна ошибка: TypeError: a is null .. Я думаю, что эта ошибка связана только с firebox – mahesh

ответ

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> 

Это решило мою проблему. Я не уверен, является ли это идеальным решением проблемы или нет. Эксперт, пожалуйста, дайте нам знать.