在SharePoint 2013中使用NAPA的CRUD操作

时间:2014-11-17 11:08:25

标签: javascript .net sharepoint sharepoint-2010

我对SharePoint开发完全陌生。 我正在尝试使用NAPA为基本的CRUD操作创建一个应用程序。 我从http://www.plusconsulting.com/blog/2013/05/crud-on-list-items-using-rest-services-jquery/获取了参考。

REST中有一些基本的get命令。 我正在使用从单个列表中获取所有列表项(其中url类似于:http://UsersrverName/site/_api/web/lists/getbytitle(‘listname’)/items

现在根据ODATA查询获取列表项,该函数为:

function getListItems(url, listname, query, complete, failure) {

    // Executing our items via an ajax request
    $.ajax({
        url: url + "/_api/web/lists/getbytitle('" + listname + "')/items" + query,
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (data) {
            complete(data); // Returns JSON collection of the results
        },
        error: function (data) {
            failure(data);
        }
    });

}

此处,根据功能参数,我已为网址列表名称指定了值,查询为空,因为我选择了所有项目,我不知道为完整失败分配什么。

所以我主要关心的是在函数getListItems()中传递的参数。

请帮助。如果还有其他选择(不使用REST),请建议。

1 个答案:

答案 0 :(得分:1)

基本上completefailure参数是函数回调。以下示例演示如何调用指定的函数:

var webUrl = 'http://intranet.contoso.com';
var listTitle = 'Documents';
var queryOptions = '';
getListItems(webUrl,listTitle ,queryOptions,
   function(data){ //success callback function
       for(var i = 0; i < data.d.results.length; i++){
         var item = data.d.results[i]; 
         console.log(item.Title);
       }  
   },
   function(error){  //error callback function
      console.log(JSON.stringify(error));
   }
);   

关键点:

SharePoint REST端点/_api/web/lists/getbytitle('<list title>')/items以下列格式返回JSON对象:

(对于Documents库)

enter image description here


jQuery 1.5中引入的另一种常用方法基于CommonJS Promises/A design

  

jQuery.Deferred()提供灵活的方式来提供多个   回调,无论是否调用,都可以调用这些回调   原始回调调度已经发生

演示如何使用jQuery.Deferred()对象的相同示例:

function getListItems(url, listname, query) {
    return $.ajax({
        url: url + "/_api/web/lists/getbytitle('" + listname + "')/items" + query,
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" }
    });
}

<强>用法

getListItems(_spPageContextInfo.webAbsoluteUrl,'Documents','')
.done(function(data)
{
    for(var i = 0; i < data.d.results.length; i++){
         var item = data.d.results[i]; 
         console.log(item.Title);
    }  
})
.fail(
function(error){
    console.log(JSON.stringify(error));
});