2016-09-23 41 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

相關問題