如何将控制参数传递给露天5中的选择器?

时间:2016-10-28 01:51:39

标签: javascript java alfresco freemarker

问题

Here是关于在露天中扩展默认authority.ftl的答案。但是当调用pickerchildren.get.js时,它会为null而不是argsFilterString。此外,代码来源pickerchildren.get.js与答案中的来源不同。

关于脱毒

我已经修改authority.ftl以将表达式${field.control.params.filterString}输出到html中,因此这个参与者 null并按预期工作。

我真正无法理解的是pickerchildren.get.js,行argsFilterString = args['filterString']始终返回null。 args变量中也没有特殊参数。

那么当alfresco版本是5时,如何将新的controll-param传递给alfresco picker?

1 个答案:

答案 0 :(得分:1)

虽然问这个问题的日期是三年多前,但如果我现在也遇到这个问题,也许我的解决方案会有所帮助。

在实施此组控制时,还缺少一步。

您必须在文件 /share/components/object-finder/object-finder.js 中找到函数 _generatePickerChildrenUrlParams: function ObjectRenderer__generatePickerChildrenUrlParams(searchTerm) 并添加到参数 filterString 的生成 URL 值中:

 _generatePickerChildrenUrlParams: function ObjectRenderer__generatePickerChildrenUrlParams(searchTerm)
  {
     var params = "?selectableType=" + this.options.itemType + "&searchTerm=" + encodeURIComponent(searchTerm) + "&size=";
     if (this.options.createNewItemUri !== "")
     {
        params += this.options.maxSearchResults;
     }
     else
     {
        params += this.options.maxChildResults;
     }

     //if filterString control-param has been provided in share-config.xml file
     if ( this.options.filterString ) {
        params += "&filterString="+ this.options.filterString;
     }
     
     .
     .
     .
     .
     return params;
  }

这只是控制自定义共享配置中是否提供此参数的另一个条件。