Создание столбцов списка с не создаваемым pnp / sp - PullRequest
0 голосов
/ 07 сентября 2018

Так что я могу создать список просто с гарантией:

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;
    });

Но не создает столбец.

Я также пробовал примеры кода из здесь и здесь , ни один из которых не работал.

1 Ответ

0 голосов
/ 10 сентября 2018

Как уже упоминалось в комментариях, ваш код работает нормально.

Просто этот столбец не виден в представлении списка. Он уже создан в списке и отображается, когда мы проверяем страницу настроек списка или пытаемся создать новый элемент списка.

Итак, теперь вам нужно добавить столбец в представление списка по умолчанию. Для этого вам просто нужно сделать дополнительный вызов 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;
    });
...