2016-09-23 61 views

回答

1

在这个示例代码中,我通过调用Alfresco Repo webscript将组成员加载到下拉控件中。

一旦数据被从REST服务

<script type="text/javascript"> 
    function ${grpName}_loadDropDown(o){   
     var selectElem = YAHOO.util.Dom.get("${fieldHtmlId}"); 
     selectElem.options.length=0;   
     for (; i<o.json.data.length; i++){   
      var user = o.json.data[i];     
      selectElem.options[j] = new Option(user.displayName, user.shortName, false, false); 
      j++; 
     }    
    } 

调用REST服务在这里

 function ${grpName}_loadData(){ 
     var url = Alfresco.constants.PROXY_URI+"api/groups/${grpName}/children?sortBy=displayName&maxItems=100&skipCount=0";    
     <#if field.control.params.sortAsc?exists> 
      <#assign sort=field.control.params.sortAsc?html> 
      url+="&sortAsc=${sort}"; 
     </#if> 
     Alfresco.util.Ajax.request({ 
     url: url, 
      method: "GET",     
      requestContentType: "application/json",  
      successCallback:{ 
      fn: function(o){ 
       ${grpName}_loadDropDown(o);    
      }, 
       scope: this      
      }, 
      failureCallback:{ 
      fn: function(o){alert("Unable to find group or error ");}, 
      scope: this 
      }    
     }); 
    } 

在这里获得注册的控制(在FTL文件)

<label for="${fieldHtmlId}">${field.label?html}:<#if field.mandatory><span class="mandatory-indicator">${msg("form.required.fields.marker")}</span></#if></label> 
<select name="${field.name}" id="${fieldHtmlId}" value="${field.value?html}" style="width: 250px;"></select> 

回调方法在此处启动REST服务请求

${grpName}_loadData(); 

    </script> 
+0

如果REST API web服务,我们如何你填充下拉列表 – JohnPaul

+0

这也是露天的内置REST API只(Alfresco.constants.PROXY_URI +“API /组/ $ {grpName提供}/children?sortBy = displayName&maxItems = 100&skipCount = 0“;) –

+0

但我的web服务外部不是户外内置的web服务,我如何在户外使用外部web服务和webservices结果填充到下拉列表中,请帮忙参考 – JohnPaul

1

以下是您的示例,我已打开JSON-RSET Web服务 以获取数据。

WebService的URL:https://jsonplaceholder.typicode.com/posts

结果应该是类似下面的一个东西,enter image description here

请让我知道,如果你需要在此进一步的帮助。

<script type="text/javascript"> 
 
function ${groupName}_populateSelectData(o){ 
 
      var selectElem = YAHOO.util.Dom.get("${fieldHtmlId}"); 
 
      selectElem.options.length=0; 
 
      var i = 0; 
 
      var j = i+1; 
 
      
 
      for (; i<o.json.length; i++){ 
 
       selectElem.options[j] = new Option(o.json[i].title, o.json[i].title, false, false); 
 
       j++;     
 
      } 
 
      
 
     } 
 

 
function ${groupName}_updateList(){ 
 
      var url = "https://jsonplaceholder.typicode.com/posts"; 
 
       
 
      Alfresco.util.Ajax.request({ 
 
      url: url, 
 
       method: "GET",  
 
       
 
       requestContentType: "application/json",  
 
       successCallback:{ 
 
       fn: function(o){ 
 
        ${groupName}_populateSelectData(o);    
 
       }, 
 
        scope: this      
 
       }, 
 
       failureCallback:{ 
 
       fn: function(o){alert("Error ");}, 
 
       scope: this 
 
       }    
 
      }); 
 
     } 
 
     
 
     ${groupName}_updateList(); 
 
</script>

+0

非常感谢我能够使用网络服务并在户外实施 – JohnPaul