日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SAP Spartacus 自定义 PageResolver 的用法

發布時間:2023/12/19 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAP Spartacus 自定义 PageResolver 的用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前置閱讀:

Angular路由里的resolve接口的使用方法

有網友遇到一個問題:

How to add my custom page resolver instead of Spartacus page resolver?

I’m adding my resolver (which extended from PageMetaResolver) into providers in my own home.module. However, my method ‘resolve’ is not called. Have you got any ideas?

@Injectable({providedIn: 'root' }) export class HomePageMetaResolver extends PageMetaResolver implements PageDescriptionResolver {constructor(protected routingService: RoutingService,protected translationService: TranslationService,protected cms: CmsService) {super();this.pageType = PageType.CONTENT_PAGE;}resolve(): Observable<PageMeta> {console.log('RESOLVE')return this.cms.getCurrentPage().pipe(switchMap(page =>combineLatest([this.resolveDescription()])),map(([description]) => ({ description })));}resolveDescription(): Observable<string> {return new Observable(sub => {sub.next('test description');});} }

分析

The most specific Page Meta Resolver wins
Guessing from the name of your meta resolver, you want to provide custom meta only for your Home page. Please note that the most specific meta resolver wins thanks to the simple scoring algorithm, which takes into consideration 2 factors: page type and page template (see source https://github.com/SAP/cloud-commerce-spartacus-storefront/blob/develop/projects/core/src/cms/page/page-meta.resolver.ts#L11).

Currently your resolver HomePageMetaResolver has the same specificity as the generic one so your resolve method is not called.

specificity of all Page Meta Resolvers

You need to specify more your meta resolver by defining its property this.pageTemplate = ‘’. Then your HomePageMetaResolver will get higher score than a default ContentPageMetaResolver whenever you visit a homepage.

Custom scoring algorithms

For custom scoring algorithms (which could take pageId into account, for instance), you can overwrite the method getScore of your PageMetaResolvers. You can even extend the method PageMetaService.getMetaResolver to redefine all rules of chosing the right page meta resolver. But for your case the standard solution (described above) should suffice.

總結

以上是生活随笔為你收集整理的SAP Spartacus 自定义 PageResolver 的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。