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

你应该花一些时间解剖现有的源代码。它拥有许多您正在寻找的答案。 –