2017-09-09 13 views
0

カスタムページテンプレートでコンポーネントを次のように設定します。これは、urlによってnodeRefパラメータが設定されることを意味します。 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 paramをつかんで何かします。

別のnodeRefを使用する場合は、そのWebスクリプトを拡張し、それに応じてロジックを強化することができます。

たとえば、プレビューアが表示するnodeRefを変更する必要がありました。現在のノードのコンテンツを表示する代わりに、関連ノードのコンテンツを表示したかったのです。そこで私はweb-preview.get.jsを拡張し、渡されたnodeRefの代わりにアソシエーションからフェッチしたnodeRefを使用するようにAlfresco.WebPreviewウィジェットのインスタンス化を変更しました。

+0

Jeff、サーバー側でnodeRefを取得する方法共有層のjavascript?私はnodeRefを正しく返すサーバー側のWebスクリプトを開発する必要があると思いますか?共有層のサーバー側のjavascriptでは、ワークフローまたはタスクに関連するドキュメントを取得するために、ワークフローまたはタスクオブジェクトを取得できるとは思わないからです。 – user3643038

+0

もう一つのアプローチは、結果のタスクhtmlのnodeRefを検索して、nodeRefをクライアント側のjavascriptを使用して取得することです。ここでの問題は、クライアントサイドのjavascriptをどこに置くべきかわからないということです。おそらくfreemarket ftlテンプレートにありますか?そして、はいの場合は、javscriptを使ってPDFビューアをnodeRefで設定する方法はありますか? javscriptを使ってpdfオブジェクトを取得してプロパティを設定できますか?ありがとうございました! – user3643038

+0

既存のソースコードを解読するのに時間を費やす必要があります。それはあなたが探している多くの答えを保持しています。 –

関連する問題