AJAX를 통해 포틀릿을로드하기 위해 특별한 KSS보기 @@refreshPortlet
을 호출 할 수 있습니다. 응답은 새 HTML 스 니펫을 포함하는 <param name="html">
요소가있는 XML 문서입니다. 현재 사이트의 루트 또는 현재 컨텍스트에서이 기능을 호출 할 수 있습니다.
다음은 생산 현장에서 가져온 다음, 그리고 완전히 완료되지 않은,하지만 당신에게 아이디어를 줄 것이다 :
<div id="portletwrapper-[long string of characters]"
class="portletWrapper kssattr-portlethash-[long string of characters]">
<dl class="portlet portletSpecificClass">
<dt class="portletHeader">
...
</dt>
<dd class="portletItem">
...
</dd>
<dd class="portletFooter">
...
</dd>
</dl>
</div>
참고 : 변수 $wrapper
는 portletWrapper
사업부를 의미
// $wrapper is the portlet wrapper div
var portlethash = $wrapper.attr('id').split('-')[1];
var base = $wrapper.data('baseurl') || $('link[rel=kss-base-url]').attr('href');
$.ajax({url: base + '/@@refreshPortlet', type: 'GET', dataType: 'xml',
data: { portlethash: portlethash },
success: function(data) {
var contents = $('dd.portletItem', $(data).find('param[name="html"]').text());
$wrapper.find('dd.portletItem')
.replaceWith(contents);
}
});
우리는 id
속성에서 포틀릿 해시를 사용합니다. 이는 KSS @@refreshPortlet
보기가 포틀릿 만 렌더링하는 방법을 알고있는 방식입니다.
데이터 속성의 래퍼에 포틀릿 기본 URL을 특정 위치에 저장하면 잘못된 컨텍스트로 포틀릿을 검색합니다. 그렇지 않으면 잘못된 정보가 표시됩니다.