自定义产品页面元解析器未被调用

问题描述 投票:0回答:1

我正在尝试将元描述添加到 Spartacus 6.5 中的 PDP 页面。 我将从 ProductPageMetaResolver 扩展的解析器添加到我的自定义 Product.module 中的提供程序中。 但是,我的方法“resolveDescription”未被调用。我错过了什么吗?

这是我的代码:

@Injectable({
   providedIn: 'root'
}) 
export class MyProductPageMetaResolverService extends ProductPageMetaResolver {

resolveDescription(): Observable<string> {
alert("test")
return this.product$.pipe(
  switchMap((product) =>
    this.translation.translate('pageMetaResolver.product.description', {
      description: "Test Description"
    }))
)}}

在product.module中:

providers: [
{
 provide: PageMetaResolver,
 useExisting: MyProductPageMetaResolverService,
 multi: true
},
...
...
...
angular meta-tags spartacus-storefront
1个回答
0
投票

我相信您需要在 MetaResolver 中提供 classAttributes pageType 和 pageTemplate 才能计算元解析器的优先级。所以像这样添加它们:

@Injectable({
   providedIn: 'root'
}) 
export class MyProductPageMetaResolverService extends ProductPageMetaResolver {
   pageType = PageType.PRODUCT_PAGE;
   pageTemplate = 'MyProductPageTemplate';
   ...
}
© www.soinside.com 2019 - 2024. All rights reserved.