【问题标题】:sharepoint Javascript The collection has not been initializedsharepoint Javascript 集合尚未初始化
【发布时间】:2016-03-07 13:30:07
【问题描述】:

您好,我尝试在 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>

每次我尝试运行它时都会显示:错误:集合尚未初始化。它尚未被请求或请求尚未执行。可能需要明确请求。

我不知道为什么。我试图用谷歌搜索它,但没有找到任何东西,因为我不是特定的东西,我想要列表中的所有内容,以便我可以访问和使用它。任何帮助都会很棒。谢谢

【问题讨论】:

    标签: javascript sharepoint


    【解决方案1】:

    在此示例中,由于以下行而发生指定错误:

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

    由于doNext 函数的无效调用,collListItem 对象在这种情况下没有被初始化。

    解决方案

    由于 jQuery.getScript() 接受 回调函数 作为第二个参数,因此替换以下行:

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

    与:

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

    【讨论】:

    • 如果上述解决方案不起作用,请将success函数中的collListItem替换为this.collListItem
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多