我的应用和我的网站内容列表如下:
从我的应用程序中,我想读取,编写和操作TestList中的数据。
TestList的内容如下:
我一直试图用这个来读它:
function setup() {
var context = SP.ClientContext.get_current();
var lists = context.get_web().get_lists();
var list = lists.getByTitle('TestList');
var listItem = list.getItemById("Title1"); // is Id the list title?
context.load(listItem);
context.executeQueryAsync(onLoadSuccess, onLoadFail);
console.log(listItem);
}
function onLoadFail(sender, args) {
alert(args.get_message());
console.log(args.get_message());
};
除了here和here概述的其他一些方法外,我还经常受到错误的欢迎:
列出' TestList'在具有URL的站点上不存在 ' https://mysite.sharepoint.com/sites/developer/TestApp'
我认为它可能与TestList是一个与TestApp在同一目录级别的应用程序有关,而不是TestApp中的列表,这就是我包含图片的原因。但是,我无法弄清楚如何在TestApp中嵌入TestList。
我在应用程序中制作列表的另一个问题是,每当我更新和重新部署TestApp时,它都会擦除TestList的任何新更新。
有人可以看到我做错了什么或提出一些建议吗?提前谢谢。
答案 0 :(得分:1)
您需要使用正确的ClientContext。
var hostUrl = decodeURIComponent(getQueryStringParameter("SPHostUrl"));
currentcontext = new SP.ClientContext.get_current();
hostcontext = new SP.AppContextSite(currentcontext, hostUrl);
web = hostcontext.get_web(); // hostcontext instead of currentcontext
var lists = web .get_lists();
var list = lists.getByTitle('TestList');
var listItem = list.getItemById(1); // Id is Id (number)
context.load(listItem);
context.executeQueryAsync(onLoadSuccess, onLoadFail);

答案 1 :(得分:0)
我认为你走在正确的轨道上。您似乎希望使用主机Web上的列表,但您正在使用appweb端点。我可以想到两个选择: