2017-09-09 4 views
0

사용자 정의 페이지 템플리트에서 구성 요소를 다음과 같이 설정합니다. 즉, nodeRef 매개 변수는 url로 설정됩니다. 코드에서 nodeRef 매개 변수를 동적으로 설정할 수 있습니까?구성 요소 페이지 매개 변수를 동적으로 설정하십시오.

감사합니다.

<sub-components> 
    <sub-component id="default"> 
     <evaluations> 
      <evaluation> 
      <evaluators> 
       <evaluator type="config.component.evaluator"> 
        <params> 
         <element>DocumentDetails/document-details/display-web-preview</element> 
        </params> 
       </evaluator> 
      </evaluators> 
      <url>/components/preview/web-preview</url> 
      <properties> 
       <nodeRef>{nodeRef}</nodeRef> 
       <api>api</api> 
       <proxy>alfresco</proxy> 
       <dependencyGroup>document-details</dependencyGroup> 
      </properties> 
      </evaluation> 
     </evaluations> 
    </sub-component> 

답변

1

확실히. 귀하의 예제에서/components/preview/web-preview는 웹 스크립트를 가리 킵니다. 웹 스크립트에는 컨트롤러 (web-preview.get.js)가 있으며 컨트롤러에는 nodeRef 매개 변수를 가져 와서 무언가를 수행합니다.

다른 nodeRef를 사용하려면 해당 웹 스크립트를 확장하고 이에 따라 로직을 향상시킬 수 있습니다.

예를 들어 최근에 프리 뷰어가 표시하는 nodeRef를 변경해야했습니다. 현재 노드의 내용을 표시하는 대신 관련 노드의 내용을 표시하려고했습니다. 그래서 web-preview.get.js를 확장하고 Alfresco.WebPreview 위젯 인스턴스를 변경하여 전달 된 nodeRef 대신 연결에서 가져온 nodeRef를 사용하도록 변경했습니다.

+0

Jeff, 서버 측에서 nodeRef를 얻는 방법 공유 계층의 자바 스크립트? 나는 nodeRef를 반환 할 서버 측 웹 스크립트를 개발해야한다고 생각한다. 왜냐하면 공유 계층에서 서버 측 자바 스크립트에서 워크 플로 또는 작업과 관련된 문서를 얻으려면 워크 플로 또는 작업 객체를 얻을 수 있다고 생각하지 않기 때문입니다. – user3643038

+0

또 다른 접근법은 nodeRef가 클라이언트 측 javascript를 사용하여 결과 작업 HTML에서 nodeRef를 검색하는 것입니다. 문제는 여기에 내 클라이언트 사이드 자바 스크립트를 넣을 곳을 모른다 ... 어쩌면 freemarket ftl 템플릿? 그리고 그렇다면 javscript를 사용하여 PDF 뷰어를 nodeRef로 설정하는 방법은 무엇입니까? javscript를 사용하여 pdf 객체를 가져온 다음 속성을 설정할 수 있습니까? 고맙습니다! – user3643038

+0

기존 소스 코드를 해부하는 데 시간을 할애해야합니다. 그것은 당신이 찾고있는 많은 답변을 보유하고 있습니다. –