Как указать URL-адрес списка при его создании с помощью библиотеки sharepoint pnp js?

Я использую библиотеку Sharepoint pnp js для создания списка: https://pnp.github.io/pnpjs/sp/lists/

Как указать URL-адрес списка (а не заголовок) при его создании?

Значит, если я хочу, чтобы URL моего списка выглядел так (например): https://contoso.sharepoint.com/sites/Site/lists/SomeCustomListUrl

Мне интересно, как указать lists/SomeCustomListUrl часть при создании списка.

Например, если я создаю его с помощью CSOM, там _ 3_ параметр в ListCreationInformation, в SPMeta2 в определении списка есть параметр CustomUrl. Не нашел ничего похожего в pnp js?

Если это невозможно с библиотекой pnp, можно ли сделать это с помощью REST api?


person Nikolay    schedule 09.07.2020    source источник


Ответы (2)


В PnP js нет необходимости указывать URL-адрес списка, просто нужно передать ListName, и он автоматически создаст URL-адрес списка. Он создаст список на сайте, где работает SPFX Solution, пожалуйста, проверьте следующую демонстрацию:

  sp.web.lists.add("SomeCustomListUrl", "This is a description of Generic List.", 100, true, { OnQuickLaunch: true }).then(i => {
      console.log(i);
    })

Это параметр all в функции sp.web.lists.add:

введите описание изображения здесь

person Jerry    schedule 10.07.2020
comment
Спасибо, Джерри, но дело в том, что я хочу, чтобы URL-адрес списка и заголовок списка были разными, поэтому вопрос. Я не хочу, чтобы URL-адрес списка создавался автоматически. Причина в том, что пользователю разрешено изменить заголовок списка позже, но приложению нужен способ найти список (а не по идентификатору, потому что идентификатор зависит от сайта). Не могли бы вы порекомендовать лучший способ добиться этого? - person Nikolay; 10.07.2020
comment
Концепция аналогична именам полей sharepoint: есть внутреннее имя, используемое приложением, есть заголовок, редактируемый пользователем, и есть идентификатор, который является уникальным guid. Итак, я хочу иметь внутреннее имя для списка. Раньше для этой цели мы использовали список URL. - person Nikolay; 10.07.2020
comment
Для PnP.js и Rest API они оба не предоставили параметр Url для переопределения, это демонстрационный вызов Rest API, codeharepoint.com/rest-api/. также укажите только заголовок списка. Боюсь, что это ограничение должно иметь какое-то отличие от CSOM .... - person Jerry; 11.07.2020

Обновление здесь на случай, если это будет полезно, это все еще разрыв между CSOM и PnPjs, начиная с версии 2.0.9.

Однако в качестве обходного пути вы можете создать список с URL-адресом в качестве заголовка и сразу же обновить заголовок. Например:

const listUrl = "MyCustomList";
const listTitle = "My Custom List";

sp.web.lists.add(listUrl).then(res => res.list.update({ Title: listTitle }));

Конечным результатом этого является список с URL-адресом [web]/Lists/MyCustomList, но с заголовком списка My Custom List.

Последующие вызовы для получения списка с помощью PnPjs должны использовать новый заголовок, например web.lists.getByTitle("My Custom List");.

person Chris Romp    schedule 08.09.2020