新建一个product-name-normalizer.ts文件,源代码如下:
import { Injectable } from '@angular/core';
import { Converter, Occ, Product } from '@spartacus/core';
@Injectable()
export class ProductNameNormalizer implements Converter<Occ.Product, Product>{
convert(source: Occ.Product, target?: Product): Product {
if (!!source.name) {
target.name = source.name.replace(/ /g, '--').toLocaleLowerCase();
}
return target;
}
}
在module里,注入这个ProductNameNormalizer:
providers: [{
provide: PRODUCT_NORMALIZER, useClass: ProductNameNormalizer,
multi: true
}
]
最后的产品明细页面,无论是url还是页面本身的product.name, 都已经被这个Normalizer处理过了:
网友评论