SCRIPT5022:该集合尚未初始化。尚未请求或请求尚未执行

时间:2014-12-05 13:55:21

标签: javascript sharepoint office365

我有一个简单的javascript,它会引发以下错误:

SCRIPT5022:尚未初始化集合。尚未请求或请求尚未执行。可能需要明确要求。

我在内容编辑器WebPart中的O365下使用它。我有一个名为" myTestList"有几个项目和一个名为" points"的列。我想只检索我创建的项目并将点数相加以在div中显示它。这是我的代码。

<div id="myPoints" style="font-size: 50px;">0​</div> 

<script language="javascript" type="text/javascript">

SP.SOD.executeOrDelayUntilScriptLoaded(retrieveMyItems, "sp.js");

function retrieveMyItems() {
    var clientContext = new SP.ClientContext.get_current();
    var oList = clientContext.get_web().get_lists().getByTitle('myTestList');

    var camlQuery = new SP.CamlQuery();
    camlQuery.set_viewXml("<View><Query><Where><Eq><FieldRef Name='Author' /><Value Type='Integer'><UserID /></Value></Eq></Where></Query></View>");
    this.collListItem = oList.getItems(camlQuery);

    clientContext.load(collListItem, 'Include(points)');

    clientContext.executeQueryAsync(Function.createDelegate(this, this.onMyItemsQuerySucceeded), Function.createDelegate(this, this.onMyItemsQueryFailed));
}

function onMyItemsQuerySucceeded(sender, args) {
    var listItemInfo = 0;
    var listItemEnumerator = collListItem.getEnumerator();

    while (listItemEnumerator.moveNext()) {
        var oListItem = listItemEnumerator.get_current();
        listItemInfo = listItemInfo + parseInt(oListItem.get_item('points'));
    }

    var div = document.getElementById("myPoints");
    div.innerHTML = listItemInfo;
}

function onMyItemsQueryFailed(sender, args) {
    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

</script>​

这里有什么问题?

更新 解决了! set_viewXml

camlQuery.set_viewXml("<View><Query><Where><Eq><FieldRef Name='Author' /><Value Type='Integer'><UserID Type='Integer'/></Value></Eq></Query></Where></View>");

我必须添加

1 个答案:

答案 0 :(得分:1)

更新已解决! set_viewXml

camlQuery.set_viewXml("<View><Query><Where><Eq><FieldRef Name='Author' /><Value Type='Integer'><UserID Type='Integer'/></Value></Eq></Query></Where></View>");

必须延长

<Query><Where>