Поддерживаемые символы для настраиваемых URL в Спартаке - PullRequest
1 голос
/ 25 февраля 2020

Кто-нибудь знает, как увидеть поддерживаемые символы, которые обрабатываются Спартаком в разделе Настраиваемые URL (особенно второе примечание)?

Примечание. У некоторых клиентов есть названия продуктов со специальными символами, которые не будут работать ( например, имея sla sh в коде или заголовке). Это может потребовать специальной обработки атрибутов до или после их использования в URL. Обратите внимание, что Spartacus не включает функции для обработки специальных символов.

1 Ответ

0 голосов
/ 25 февраля 2020

Конфигурация маршрутизатора для маршрутов продукта определяется параметрами c ULR и динамическим содержимым c, формирующим модель продукта. По умолчанию код продукта и имя используются в конфигурации маршрута для построения 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;
  }
}

Нормализатор может быть предоставлен в Angular, используя DI. https://github.com/tobi-or-not-tobi/spartacus-bootcamp/blob/master/src/app/features/routing/product-routes.module.ts показывает вам пример.

Шаг 2: настройте конфигурацию маршрутизатора для использования prettyName в качестве параметра маршрута. Пример этого вы видите в вышеупомянутой ссылке.

Фактическое сопоставление зависит от проекта. Спартак не имеет стандартного отображения в настоящее время.

...