“GetEnumerator的是不是一个函数”的Javascript(SharePoint Onli

2019-10-22 23:41发布

有谁知道为什么我得到

“遗漏的类型错误:list.getEnumerator不是一个函数”

在我的onSuccess()函数?

此代码工作正常之前,当我试图让所有列出的标题在我的网站集。

现在,我想分配给李四所有行的标题,在我的名单称为testIssues

有什么我错过了?

'use strict';
var clientContext = new SP.ClientContext.get_current();
var hostweburl = decodeURIComponent(getQueryStringParameter("SPHostUrl"));
var parentContext = new SP.AppContextSite(clientContext, hostweburl);
var parentWeb = parentContext.get_web();
var list = parentWeb.get_lists().getByTitle("testIssues");
var listItems;

$(document).ready(function () {

});

function VisaLista() {
    var camlQuery = new SP.CamlQuery();
    camlQuery.set_viewXml("<View><Query><Where><Geq><FieldRef Name='p32c'/>" +
    "<Value Type='User'>John doe</Value></Geq></Where></Query></View>");
    listItems = list.getItems(camlQuery);
    clientContext.load(listItems);
    clientContext.executeQueryAsync(OnSuccess, OnFail);
}

function OnSuccess() {
    var listString;
    var listEnumerator = list.getEnumerator();
    while (listEnumerator.moveNext()) {
        var currentItem = listEnumerator.get_current();
        listString += "<br/> " + currentItem.get_title();
    }
    $('#divAllaListor').html(listString);
}

function OnFail(sender, args) {
    alert('Failed, Error:' + args.get_message());
}

function getQueryStringParameter(param) {
    var params = document.URL.split("?")[1].split("&");
    var strParams = "";
    for (var i = 0; i < params.length; i = i + 1) {
        var singleParam = params[i].split("=");
        if (singleParam[0] == param) {
            return singleParam[1];
        }
    }
}

Answer 1:

你载入列表项到一个变量命名listItems ,没有list

尝试var listEnumerator = listItems.getEnumerator();



Answer 2:

您的问题可能与当你执行你的代码的时间有关,你必须确保在页面加载过程的适当时机执行代码。 尝试使用$(window).loadwindow.onload ,然后通过使用确保的SharePoint JS库的负载SP.SOD.executeFuncExecuteOrDelayUntilScriptLoaded ,通过例如:

$(window).load(function(){
     SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function (){
          var clientContext = new SP.ClientContext.get_current();
          var hostweburl = decodeURIComponent(getQueryStringParameter("SPHostUrl"));
          var parentContext = new SP.AppContextSite(clientContext, hostweburl);
          var parentWeb = parentContext.get_web();
          var list = parentWeb.get_lists().getByTitle("testIssues");
          var listItems;
          //Call your function here
          VisaLista();
     });
});

看看这个线程的更多细节。

使用jQuery / JavaScript的如何检查是否JS文件(SP.JS)已经呼吁在一个页面?



文章来源: “getEnumerator is not a function” Javascript (Sharepoint Online)