创建未创建 pnp/sp 的列表列
Creating List Columns with pnp/sp not being created
所以我可以用 ensure 创建一个列表:
sp.web.lists.ensure(list)
.then((ler: ListEnsureResult) => {
if (ler.created) {
console.log(list, " was created; creating column");
ler.list.fields.addText("myTestColumn");
}
return ler.created;
});
但没有创建列。
如评论中所述,您的代码运行良好。
只是该列在列表视图中不可见。它已经在列表中创建,当我们检查列表设置页面或尝试创建新列表项时可见。
因此,现在您需要将列添加到默认列表视图。为此,您只需进行额外的 REST API 调用,使其在默认列表视图中可见,如下所示:
sp.web.lists.ensure(list)
.then((ler: ListEnsureResult) => {
if (ler.created) {
console.log(list, " was created; creating column");
ler.list.fields.addText("myTestColumn").then(function(){
const view = ler.list.defaultView;
view.fields.add("myTestColumn");
});
}
return ler.created;
});
所以我可以用 ensure 创建一个列表:
sp.web.lists.ensure(list)
.then((ler: ListEnsureResult) => {
if (ler.created) {
console.log(list, " was created; creating column");
ler.list.fields.addText("myTestColumn");
}
return ler.created;
});
但没有创建列。
如评论中所述,您的代码运行良好。
只是该列在列表视图中不可见。它已经在列表中创建,当我们检查列表设置页面或尝试创建新列表项时可见。
因此,现在您需要将列添加到默认列表视图。为此,您只需进行额外的 REST API 调用,使其在默认列表视图中可见,如下所示:
sp.web.lists.ensure(list)
.then((ler: ListEnsureResult) => {
if (ler.created) {
console.log(list, " was created; creating column");
ler.list.fields.addText("myTestColumn").then(function(){
const view = ler.list.defaultView;
view.fields.add("myTestColumn");
});
}
return ler.created;
});