2017-09-09 57 views
0

Im在自定義頁面模板中設置組件,如下所示。這意味着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腳本。 web腳本有一個控制器(web-preview.get.js),並在該控制器中抓取nodeRef參數並對其執行任何操作。

如果您想使用不同的nodeRef,則可以擴展該Web腳本並相應地增強邏輯。

例如,我最近需要更改預覽程序顯示的nodeRef。我不想顯示當前節點的內容,而是想顯示相關節點的內容。因此,我擴展了web-preview.get.js並更改了Alfresco.WebPreview小部件實例化,以便使用從關聯中獲取的nodeRef而不是傳入的nodeRef。

+0

Jeff,如何在服務器端獲取nodeRef在共享層的JavaScript?我相信我需要開發一個服務器端webscript,它將返回nodeRef的權利?因爲在服務器端的JavaScript共享層我不認爲我可以得到一個工作流或任務對象,以獲得與工作流程/任務相關的文件。 – user3643038

+0

另一種方法是獲取nodeRef usign客戶端JavaScript,在生成的任務html中搜索nodeRef。這裏的問題是,我不知道在哪裏把我的客戶端JavaScript ...也許在自由市場的FTP模板?如果是的話,那麼如何使用javscript我可以設置pdf查看器的nod​​eRef?我可以使用javscript獲取pdf對象,然後設置屬性?謝謝! – user3643038

+0

你應該花一些時間解剖現有的源代碼。它擁有許多您正在尋找的答案。 –