Создайте два варианта одних и тех же проектов с Angular

#angular #project-structure #angular-workspace-configuration

#angular #проект-структура #angular-workspace-configuration

Вопрос:

Я работаю над проектом, который требует создания двух вариантов одного и того же веб-сайта (мужского и женского пола) Каждый из двух проектов должен находиться на разных путях, первый www.website.com/male/somelink а второй www.website.com/female/somelink

Два веб-сайта должны быть действительно одинаковыми, за исключением нескольких вещей, которые должны отличаться, например, цвета, данные, полученные из API, или некоторые конкретные маршруты для мужчин или другие для женщин. Чтобы мой код был чистым и последовательным, я пытаюсь найти наилучшее решение для совместного использования как можно большего количества кодас двумя проектами, но я не могу найти решение для совместного использования всего этого кода и сохранения большой части общего

Я прочитал эту статью, но проблема, с которой я сталкиваюсь с этим методом, заключается в том, что у него нет возможности иметь общие маршруты, и даже если я решу создать свои службы компонентов в корневых проектах и повторно импортировать в маршруты, я также не могу узнать в своем коде, в какомраздел я (мужчина или женщина)

Я также думал о создании двух разных сборок и использовании переменных среды для определения мужских или женских условий в коде, но при таком использовании я не вижу, как изолировать часть маршрутов (маршруты должны быть общими и другими специфическими)

Может ли кто-нибудь помочь мне найти лучшее решение, пожалуйста?

Спасибо!

Ответ №1:

Вы можете добиться этого с помощью параметра route.

Вставьте это в свой app-routing.module.ts .

 const routes: Routes = [
     :
    {path: ':gender/somelink', component: SomeLinkComponent},
]
 

В SomeLinkComponent.ts , сделайте так.

   public gender = this.route.snapshot.paramMap.get('gender');

  constructor(
    private route: ActivatedRoute,
  ) { }
 

Затем вы должны реализовать свою логику со gender значением.