Если вы работаете с SharePoint и вам необходимо получить элементы из списка, pnpjs — это мощная библиотека JavaScript, которая может значительно облегчить вашу жизнь. В этой статье блога мы рассмотрим различные методы, предоставляемые pnpjs для извлечения элементов из списка SharePoint. Независимо от того, являетесь ли вы новичком или опытным разработчиком, это руководство предоставит вам знания, необходимые для эффективного извлечения данных из списков SharePoint.
Метод 1: использование getByTitleдля получения элементов по заголовку списка
Один из самых простых способов получения элементов из списка SharePoint — использование getByTitle
import { sp } from '@pnp/sp';
const getListItemsByTitle = async (listTitle) => {
const list = sp.web.lists.getByTitle(listTitle);
const items = await list.items.getAll();
return items;
};
// Usage
const listTitle = 'My List';
const items = await getListItemsByTitle(listTitle);
console.log(items);
Метод 2. Использование getByIdдля получения элементов по идентификатору списка.
Если вы знаете идентификатор списка SharePoint, из которого хотите получить элементы, вы можете использовать getByIdметод. Этот метод принимает идентификатор списка в качестве параметра и возвращает объект Collection, содержащий элементы. Вот пример:
import { sp } from '@pnp/sp';
const getListItemsById = async (listId) => {
const list = sp.web.lists.getById(listId);
const items = await list.items.getAll();
return items;
};
// Usage
const listId = '12345';
const items = await getListItemsById(listId);
console.log(items);
Метод 3: использование запросов CAML для фильтрации элементов
pnpjs также позволяет использовать запросы языка разметки приложений для совместной работы (CAML) для фильтрации элементов, которые вы извлекаете из списка SharePoint. Запросы CAML предоставляют мощный способ указать условия и получить только те элементы, которые соответствуют этим условиям. Вот пример:
import { sp } from '@pnp/sp';
const getFilteredItems = async () => {
const list = sp.web.lists.getByTitle('My List');
const query = `<View>
<Query>
<Where>
<Eq>
<FieldRef Name='Status' />
<Value Type='Text'>Completed</Value>
</Eq>
</Where>
</Query>
</View>`;
const items = await list.getItemsByCAMLQuery({ ViewXml: query });
return items;
};
// Usage
const filteredItems = await getFilteredItems();
console.log(filteredItems);
Метод 4: использование selectи expandдля получения определенных полей и связанных данных
Иногда вам может потребоваться только получить определенные поля из списка SharePoint или включить соответствующие данные из других списков. Для этого pnpjs предоставляет методы selectи expand. Вот пример:
import { sp } from '@pnp/sp';
const getSpecificFields = async () => {
const list = sp.web.lists.getByTitle('My List');
const items = await list.items
.select('Title', 'AssignedTo/Title')
.expand('AssignedTo')
.getAll();
return items;
};
// Usage
const specificFields = await getSpecificFields();
console.log(specificFields);
В этой статье мы рассмотрели различные методы, предоставляемые pnpjs для получения элементов из списка SharePoint. Мы рассмотрели основы, такие как использование getByTitleи getById, а также более сложные методы, такие как использование запросов CAML и выбор определенных полей. Используя возможности pnpjs, вы можете эффективно получать необходимые данные из списков SharePoint, экономя при этом время и усилия.