嗨,我试图在MSDN上制作教程。这是链接:https://msdn.microsoft.com/en-us/library/office/hh185007%28v=office.14%29.aspx这是我的Java代码:
<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>
每当我尝试运行它时,它都会说:错误:集合尚未初始化。尚未请求或尚未执行请求。可能需要明确要求。
而且我不知道为什么。我试图用谷歌搜索它,但是没有找到任何东西,因为我不是特定的东西,我想要列表中的所有东西,以便我可以访问和使用它。任何帮助都会很棒。谢谢
最佳答案
在此示例中,由于行而发生指定的错误:
$.getScript(scriptbase + "SP.js", doNext());
由于
doNext
函数的无效调用,因此在这种情况下不会初始化collListItem
对象。解
由于
jQuery.getScript()
接受回调函数作为第二个参数,因此请替换以下行:$.getScript(scriptbase + "SP.js", doNext());
与:
$.getScript(scriptbase + "SP.js", doNext);
关于javascript - sharepoint Javascript集合尚未初始化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35845080/