2016-03-07 86 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

相关问题