本文整理匯總了TypeScript中sp-pnp-js.Web.getFolderByServerRelativeUrl方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript Web.getFolderByServerRelativeUrl方法的具體用法?TypeScript Web.getFolderByServerRelativeUrl怎麽用?TypeScript Web.getFolderByServerRelativeUrl使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類sp-pnp-js.Web
的用法示例。
在下文中一共展示了Web.getFolderByServerRelativeUrl方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: getDiscussionById
/**
* Get a disucssion feed by id
* @param id the id of the associated page
*/
public async getDiscussionById(associatedPageId: number): Promise<IDiscussion> {
let web = new Web(_spPageContextInfo.webAbsoluteUrl);
try {
const discussion = await web.getList(this.discussionListServerRelativeUrl).items
.filter(`AssociatedPageId eq ${ associatedPageId }`)
.select("Id", "Folder", "AssociatedPageId")
.expand("Folder")
.top(1)
.get();
if (discussion.length > 0) {
// Get replies from this discussion (i.e. folder)
const query: CamlQuery = {
FolderServerRelativeUrl: `${this.discussionListServerRelativeUrl}/${discussion[0].Folder.Name}`,
ViewXml: `<View>
<ViewFields>
<FieldRef Name="Id"></FieldRef>
<FieldRef Name="ParentItemID"></FieldRef>
<FieldRef Name="Created"></FieldRef>
<FieldRef Name="Modified"></FieldRef>
<FieldRef Name="Body"></FieldRef>
<FieldRef Name="ParenListId"></FieldRef>
<FieldRef Name="LikedBy"></FieldRef>
<FieldRef Name="LikesCount"></FieldRef>
</ViewFields>
<Query/>
</View>`,
};
const replies = await web.getList(this.discussionListServerRelativeUrl).getItemsByCAMLQuery(query);
// Batch are not supported on Sharepoint 2013
// https://github.com/SharePoint/PnP-JS-Core/issues/492
const batch = pnp.sp.createBatch();
const isSPO = _spPageContextInfo["isSPO"];
// tslint:disable-next-line:array-type
const discussionReplies: Promise<IDiscussionReply>[] = replies.map(async (reply) => {
web = new Web(_spPageContextInfo.webAbsoluteUrl);
let item;
// tslint:disable-next-line:prefer-conditional-expression
if (isSPO) {
item = await web.getList(this.discussionListServerRelativeUrl).items.getById(reply.Id).select("Author/Name", "ParentList/Id").expand("Author/Name", "ParentList/Id").inBatch(batch).get();
} else {
item = await web.getList(this.discussionListServerRelativeUrl).items.getById(reply.Id).select("Author/Name", "ParentList/Id").expand("Author/Name", "ParentList/Id").get();
}
const authorProperties = await this.getUserProperties(item.Author.Name);
const PictureUrl = authorProperties["PictureUrl"] ? authorProperties["PictureUrl"] : "/_layouts/15/images/person.gif?rev=23";
// tslint:disable-next-line:no-object-literal-type-assertion
return {
Author: {
DisplayName: authorProperties["DisplayName"],
Id: item.Author.Id,
PictureUrl,
},
Body: reply.Body,
Children: [],
Edited: reply.Modified,
Id: reply.Id,
LikedBy: reply.LikedByStringId ? reply.LikedByStringId.results : [],
LikesCount: reply.LikesCount ? reply.LikesCount : 0,
ParentItemID: reply.ParentItemID,
ParentListId: item.ParentList.Id,
Posted: reply.Created,
UserPermissions: await this.getCurrentUserPermissionsOnItem(reply.Id, item.Author.Name),
} as IDiscussionReply;
});
if (isSPO) {
await batch.execute();
}
// Get rating experience settings
const folderSettings = await web.getFolderByServerRelativeUrl(this.discussionListServerRelativeUrl).properties.select("Ratings_VotingExperience").get();
const ratingExperience: string = folderSettings.Ratings_x005f_VotingExperience;
let areLikesEnabled;
if (ratingExperience) {
areLikesEnabled = ratingExperience.localeCompare("Likes") === 0 ? true : false;
}
// tslint:disable-next-line:no-object-literal-type-assertion
return {
AreLikesEnabled: areLikesEnabled,
AssociatedPageId: discussion[0].AssociatedPageId,
Id: discussion[0].Id,
Replies: await Promise.all(discussionReplies),
Title: discussion[0].Title,
} as IDiscussion;
//.........這裏部分代碼省略.........