2016-03-07 84 views
1

您好,我試圖讓MSDN上的教程。這裏是鏈接:https://msdn.microsoft.com/en-us/library/office/hh185007%28v=office.14%29.aspx這裏是我的Java代碼:sharepoint Javascript集合尚未初始化

<script type="text/javascript"> 
$(document).ready(function() { 
    var scriptbase = "https://example.at/15/"; 
    $.getScript(scriptbase + "SP.Runtime.js", function() { 
     $.getScript(scriptbase + "SP.js", doNext()); 
    }); 
}); 
var siteUrl = "/knowledge/lzpowerbase"; 
function doNext() { 
    console.log("SharePoint geladen!!"); 
    retrieveListItems(siteUrl); 
} 
function retrieveListItems(siteUrl) { 
    var clientContext = new SP.ClientContext(siteUrl); 
    var oList = clientContext.get_web().get_lists().getByTitle('Component Documents');  
    var camlQuery = new SP.CamlQuery(); 
    camlQuery.set_viewXml('<View><Query><Where><Geq><FieldRef Name=\'ID\'/>' + 
     '<Value Type=\'Number\'>1</Value></Geq></Where></Query><RowLimit>10</RowLimit></View>'); 
    this.collListItem = oList.getItems(camlQuery);  
    clientContext.load(collListItem);  
    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));     
} 
function onQuerySucceeded(sender, args) { 
    var listItemInfo = ''; 
    var listItemEnumerator = collListItem.getEnumerator();   
    while (listItemEnumerator.moveNext()) { 
     var oListItem = listItemEnumerator.get_current(); 
     listItemInfo += '\nID: ' + oListItem.get_id() + 
      '\nTitle: ' + oListItem.get_item('Title') + 
      '\nBody: ' + oListItem.get_item('Body'); 
    } 
    alert(listItemInfo.toString()); 
} 
function onQueryFailed(sender, args) { 
    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); 
} 
</script> 

每次我嘗試運行它,它說:錯誤:集合尚未初始化。它沒有被請求或者請求沒有被執行。可能需要明確要求。

我不知道爲什麼。我試圖谷歌它,但沒有發現任何因爲我不是特定的東西,我希望在列表中的一切,所以我可以訪問和使用它。任何幫助都會很棒。 THX

回答

1

在這個例子中的發生是由於行指定的錯誤:

$.getScript(scriptbase + "SP.js", doNext()); 

由於doNext功能的無效調用,collListItem對象是沒有得到在這種情況下初始化。

由於jQuery.getScript()接受回調函數作爲第二個參數,替換行:

$.getScript(scriptbase + "SP.js", doNext()); 

與:

$.getScript(scriptbase + "SP.js", doNext); 
+0

如果上述溶液中不工作,替換collListItem用this.collListItem函數成功 – Vaibhav

相關問題