我正在尝试为其中的单个项目更新名称为“主管任务列表 (DTL)”的 SharePoint 列表。我有以下代码:
var listName = 'Director''s Task List (DTL)';
var requestURI = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + listName + "')/items(" + ID + ")";
$.ajax({
uri: requestURI,
type: "POST",
contentType: "application/json; odata=verbose",
data: JSON.stringify(data),
headers: {
"Accept": "application/json; odata=verbose",
"X-HTTP-Method": "MERGE",
"IF-MATCH": "*",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
}
});
其中数据是:
var data = {
'__metadata': { 'type': getItemTypeForListName(listName)},
'Suspense_x0020_Status' :
{
'__metadata': { 'type': 'SP.FieldUrlValue' },
'Description': statusObject[ID]["color"],
'Url': statusObject[ID]["html"]
}
};
getItemTypeForListName(listName) 是:
function getItemTypeForListName(listName) {
var itemType = "SP.Data." + listName.charAt(0).toUpperCase() + listName.slice(1) + "ListName";
var encItemType = itemType.replace(/\s/g,'_x0020_');
return(encItemType);
}
我无法让代码正确完成。我收到一个错误:
模型无法解析名为 'SP.Data.Director''s_x0020_Task_x0020_List_x0020_(DTL)ListName' 的类型。当模型可用时,每种类型都必须解析为有效类型。
我知道它与空格和单撇号有关,但我尝试了几种解决方案,但没有运气。我已经看到双单撇号 "''" 是一种工作方法,它在让这个列表名称类型工作之前对我有所帮助。所以不要立即指出这一点。
有什么想法吗?