1

SharePoint 추가 기능에서 목록 항목을 만들어야합니다. OfficeDev Github 사이트 here에서 함수를 얻었습니다. 함수를 호출하면 "this"가 처음 나타나는 행에서 실패합니다.SharePoint 추가 기능 JSOM 목록 항목 작성 오류. "this"가 정의되지 않았습니다.

오류 : 정의되지 않았거나 null 참조의 특성 'oListItem'을 설정할 수 없습니다

// line calling the function 
 
createDELListItem(document.getElementById("resultpanel"), uniqueID, "MTD_On_Demand"); 
 

 
// function 
 
function createDELListItem(resultpanel, extractionID, extractionType) { 
 
     var clientContext; 
 
     var oWebsite; 
 
     var oList; 
 
     var itemCreateInfo; 
 

 
     clientContext = new SP.ClientContext.get_current(); 
 
     oWebsite = clientContext.get_web(); 
 
     oList = oWebsite.get_lists().getByTitle("Global_Variable_Store"); 
 

 
     itemCreateInfo = new SP.ListItemCreationInformation(); 
 
     // Line throwing the "null or undefined" error 
 
     this.oListItem = oList.addItem(itemCreateInfo); 
 
     //A guid to send with message that uniquely identifies the list item. 
 
     this.oListItem.set_item("ExtractionID", extractionID); 
 
     //A brief title (description) of the variable set here in this list item. 
 
     this.oListItem.set_item("Extraction Type", extractionType); 
 
     //The Variable name 
 
     this.oListItem.set_item("StartTime", convertThisDate); 
 
     //The process descriptor that set the variable. This is set by the code. 
 
     this.oListItem.update(); 
 

 
     clientContext.load(this.oListItem); 
 
     clientContext.executeQueryAsync(
 
      Function.createDelegate(this, successHandler), 
 
      Function.createDelegate(this, errorHandler) 
 
     ); 
 

 
     function successHandler() { 
 
      resultpanel.innerHTML = "Go to the <a href='../Lists/Global_Variable_Store'>list</a> to see your new item."; 
 
     } 
 

 
     function errorHandler() { 
 
      resultpanel.innerHTML = "Request failed: " + arguments[1].get_message(); 
 
     } 
 
    }

답변

2

이 보인다 this 귀하의 경우에는 정의되어 있지, 나는 this 키워드로를 사용하지 않는 것 목록 항목을 만들기위한 함수를 다음으로 바꿉니다.

function addListItem(list,itemProperties,success,error) 
{ 
    var ctx = list.get_context();  
    var itemCreateInfo = new SP.ListItemCreationInformation(); 
    var listItem = list.addItem(itemCreateInfo); 
    for(var name in itemProperties) { 
     listItem.set_item(name, itemProperties[name]) 
    } 
    listItem.update(); 
    ctx.load(listItem); 
    ctx.executeQueryAsync(
     function() { 
      success(listItem);   
     }, 
     error 
    ); 
}  

용도

var properties = { 
     "ExtractionID" : "----", 
     "Extraction Type": "----", 
     "StartTime": "----"    
    }; 
    var ctx = SP.ClientContext.get_current(); 
    var web = ctx.get_web(); 
    var list = web.get_lists().getByTitle("Global_Variable_Store"); 
    addListItem(list,properties, 
     function(contactItem){ 
      console.log('Item has been created successfully'); 
     }, 
     function(sender,args){ 
      console.log('Error occured while creating item:' + args.get_message()); 
    });