SharePoint 2013上的Javascript对象模型未加载

Javascript Object Model On SharePoint 2013 Not Loading

本文关键字:加载 对象模型 Javascript 2013 上的 SharePoint      更新时间:2023-09-26

我在JSOM SharePoint 2013上有一个常见错误。我有一个低于的功能

    function getTasks() {        
        var context = new SP.ClientContext(appWebUrl);
        var web = context.get_web();
        context.load(web);
        var splist = web.get_lists().getByTitle("Gorevler");
        var taskQuery = new SP.CamlQuery();
        taskQuery.set_viewXml("<View><Query>" +
                          "<Where><Eq><FieldRef Name='AssignedTo' LookupId='True' /><Value Type='Integer'>" + currentUserId + "</Value></Eq></Where></Query>" +
                          "<ViewFields><FieldRef Name='Title' /><FieldRef Name='AssignedTo' /><FieldRef Name='StartDate' /><FieldRef Name='DueDate' /></ViewFields></View>");
        var taskQueryItems = splist.getItems(taskQuery);
        context.load(taskQueryItems);
        context.executeQueryAsync(
                Function.createDelegate(this, successHandler),
                Function.createDelegate(this, errorHandler)
    );
    function successHandler() {
        var taskAdet = taskQueryItems.get_count();
        alert("Adet : " + taskAdet);
    }
    function errorHandler(sender, args) {
        alert("Hata");
    }

当我重新运行上面的代码时,它会告诉我:"集合尚未初始化。它尚未被请求或请求尚未执行。可能需要显式请求。"为什么我必须刷新页面才能获得成功的结果?有没有办法在每次执行中都得到正确的结果?

感谢

只需移除context.load(web)即可。

function getTasks() {        
    var context = new SP.ClientContext(appWebUrl);
    var web = context.get_web();
    context.load(web); // <-- This is your problem. 
    var splist = web.get_lists().getByTitle("Gorevler");
    var taskQuery = new SP.CamlQuery();
    taskQuery.set_viewXml("<View><Query>" +
                      "<Where><Eq><FieldRef Name='AssignedTo' LookupId='True' /><Value Type='Integer'>" + currentUserId + "</Value></Eq></Where></Query>" +
                      "<ViewFields><FieldRef Name='Title' /><FieldRef Name='AssignedTo' /><FieldRef Name='StartDate' /><FieldRef Name='DueDate' /></ViewFields></View>");
    var taskQueryItems = splist.getItems(taskQuery);
    context.load(taskQueryItems);
    context.executeQueryAsync(
            Function.createDelegate(this, successHandler),
            Function.createDelegate(this, errorHandler)
);

收件人:

function getTasks() {        
    var context = new SP.ClientContext(appWebUrl);
    var splist = context.get_web().get_lists().getByTitle("Gorevler");
    var taskQuery = new SP.CamlQuery();
    taskQuery.set_viewXml("<View><Query>" +
                      "<Where><Eq><FieldRef Name='AssignedTo' LookupId='True' /><Value Type='Integer'>" + currentUserId + "</Value></Eq></Where></Query>" +
                      "<ViewFields><FieldRef Name='Title' /><FieldRef Name='AssignedTo' /><FieldRef Name='StartDate' /><FieldRef Name='DueDate' /></ViewFields></View>");
    var taskQueryItems = splist.getItems(taskQuery);
    context.load(taskQueryItems);
    context.executeQueryAsync(
            Function.createDelegate(this, successHandler),
            Function.createDelegate(this, errorHandler)
);