对于那种情况:
使用 JSOM 获取所有列表,并获取每个列表中的所有项目
以下示例演示了如何完成它:
var result = [];
var ctx = SP.ClientContext.get_current();
var lists = ctx.get_web().get_lists();
ctx.load(lists,"Include(Id,Title)");
ctx.executeQueryAsync(
function() {
lists.get_data().forEach(function(list){
var items = list.getItems(SP.CamlQuery.createAllItemsQuery());
ctx.load(items,"Include(Id,FileRef)");
var listEntry = {
id: list.get_id().toString(),
title: list.get_title()
}
result.push({list: listEntry,
items: items});
});
ctx.executeQueryAsync(
function() {
//transform listitem properties
result.forEach(function(item){
item.items = item.items.get_data().map(function(listItem){
return listItem.get_fieldValues();
});
});
console.log(JSON.stringify(result));
},logError);
},logError);
在哪里
function logError(sender,args){
console.log(args.get_message());
}
笔记:
- 结果存储在
result
具有以下格式的数组中:[{list : { id: "1d9b9c27-2b2f-4758-bd7e-f0e4977aa13d", title: "Documents", items: [{ id: "1d9b9c27-2b2f-4758-bd7e-f0e4977aa13d"}, ...]},...]
- 在单个请求 中检索每个列表的列表项使用请求批处理功能