Spartacus中可配置URL的受支持字符

时间:2020-02-25 14:30:39

标签: spartacus-storefront

有人知道如何在可配置URL(特别是第二注)部分中查看Spartacus处理的受支持字符吗?

注意:一些客户的产品标题带有特殊字符,这些字符将不起作用(例如,代码或标题中带有斜线)。这可能需要在URL中使用属性之前或之后对属性进行特殊处理。请注意,Spartacus不包含用于处理特殊字符的功能。

1 个答案:

答案 0 :(得分:0)

产品路线的路由器配置由静态ULR零件驱动,而动态内容构成产品模型。默认情况下,在路由配置中使用产品代码和名称来构建URL。但是,您可以自定义所谓的路由参数。当您在URL中需要漂亮的产品名称时,这是很常见的事情。

步骤1: 通过将产品名称映射到“漂亮名称”来规范产品模型。您可以通过实现规范化器来实现:

@Injectable({
  providedIn: 'root',
})
export class ProductPrettyNameNormalizer
  implements Converter<Occ.Product, Product> {
  convert(source: Occ.Product, target?: any): Product {
    target.prettyName = source.name.replace(/ /g, '-');
    return target;
  }
}

可以使用DI在Angular中提供规范化器。 https://github.com/tobi-or-not-tobi/spartacus-bootcamp/blob/master/src/app/features/routing/product-routes.module.ts展示了一个示例。

步骤2: 将路由器配置配置为使用prettyName作为路由参数。您可以在上述链接中看到一个示例。

实际映射取决于项目。到目前为止,Spartacus还没有标准映射。