2014-11-13 2 views
0

Его работа до такой степени, что мне нужно перебирать элемент списка, который является «SP.SPFilterNode (« z: row »). Each (function()» I «Пробовал, где он сейчас, внутри обратного вызова успеха, подключен SchedRec, listItems и эта версия ... ничего не работает. Как я могу использовать .each для петли через элементы (в этом случае есть 6 записей)Объект не поддерживает ошибку свойства «каждый» цикл

function A(THePWD) { 
//Count Exam Objectives 
var deferred = $.Deferred(); 
console.log("A " + THePWD); 

var clientContext = null; 
var currentweb = null; 
clientContext = new SP.ClientContext.get_current(); 
web = clientContext.get_web(); 
var SchedRec = web.get_lists().getByTitle("Exam Objectives"); 
var camlQuery = new SP.CamlQuery(); 
var q = "<View><Query><Where><Gt><FieldRef Name='ID' /><Value Type='Number'>" + 0 + "</Value></Gt></Where></Query></View>" 
camlQuery.set_viewXml(q); 
var listItems = SchedRec.getItems(camlQuery); 
clientContext.load(listItems, 'Include(Title)'); 
var o = {deferred: deferred, listItems: listItems}; 

clientContext.executeQueryAsync(
      Function.createDelegate(o, this.OnFindSchedLoadSuccessA), 
      Function.createDelegate(o, this.OnFindSchedLoadFailed) 
      ); 


SP.SPFilterNode("z:row").each(function() { 
console.log ($(this).attr("ows_Title")); 
}); 

return deferred; 
} 

function OnFindSchedLoadSuccessA(sender, args){ 
var def = $.Deferred(); 

if (this.listItems.get_count() >0) { 
    console.log("A: total objectives=" + this.listItems.get_count()); 
    /* this.listItems.each(function() { 
    console.log ($(this).attr("ows_Title")); 
    });*/  
    this.deferred.resolve();   
}else { 
    console.log("REJECTED funcA"); 
    this.deferred.reject("count zero"); 
    } 
return def; 
} 

ответ

0

Часть ошибок была моя «СП», в то время как штраф в «нового SP.ClientContext.get_current();»., не то же самое, как SPServices Таким образом, я обнаружил необходимость включения SPServices js следующим образом:

<script language="javascript" src="https://<my sharepoint site>/Site Assets/jquery.SPServices-2014.01.min.js" type="text/javascript"></script> 

ТОГДА .... следующий пример кода ж/твики для моих потребностей работали:

var method = "GetListItems"; 
    var list = "Exam Objectives"; 

    var fieldsToRead = "<ViewFields>" + 
             "<FieldRef Name = 'Title' />" + 
             "<FieldRef Name = 'ID' />" + 
            "</ViewFields>"; 
    var query = "<Query>" + 
          "<Where>" + 
          "<Neq>" + 
           "<FieldRef Name='ID' /><Value Type='Number'>0</Value>" + 
          "</Neq>" + 
          "</Where>" + 
          "<OrderBy>" + 
          "<FieldRef Name='Title'/>" + 
          "</OrderBy>" + 
         "</Query>"; 
    $().SPServices({ 
     operation: method, 
     async: false, 
     listName: list, 
     CAMLViewFields: fieldsToRead, 
     CAMLQuery: query, 
      //this basically means "do the following code when the call is complete" 
      completefunc: function (xData, Status) { 
      console.log("pre-the zero index of Obj_Array is " + Obj_Array[0]); 
      //this code iterates through every row of data returned from the web service call 
      $(xData.responseXML).SPFilterNode("z:row").each(function() { 
       Obj_Array.push($(this).attr("ows_Title")); 
       Obj_Array[0]++; 
       Random_Array.push(Obj_Array[0]); 
       console.log(Obj_Array[Obj_Array[0]]); 
      }); 
      console.log("post-the zero index of Obj_Array is " + Obj_Array[0]); 

      } 
    }); 
Смежные вопросы