как маршрутизировать динамическую страницу программно в Angular - PullRequest
0 голосов
/ 11 июня 2019

Мне нужно динамически маршрутизировать страницу в зависимости от сценария.

 { path: ':locale/:id', component: HomePageCategory    },
 { path: ':locale/:platform', component: PlatformPageCategory    },
 { path: ':locale/contact', component: ContactPageCategory    },

Выше моя конфигурация маршрутизации. в этом первое и второе было динамичным. Мне нужно архивировать над всеми делами. я написал сервис, основанный на canActivate.

но мне нужно перенаправить страницу программно, как

router.navigate()
router.navigateByUrl()

Подскажите, пожалуйста, как это сделать для этого случая.

1 Ответ

0 голосов
/ 11 июня 2019

Исходя из вашей информации, я предлагаю сделать следующее:

  1. Добавить root component в ваш маршрут и избавиться от других маршрутов.Примерно так: { path: ':locale/:param', component: RootComponent}
  2. Внутри RootComponent подпишитесь на маршрутизатор и проанализируйте ваши динамические параметры, выбирая, какой компонент визуализировать на основе этого.

  3. Шаблон

    RootComponent должен содержать только <ng-container #host></ng-container>, который будет использоваться в качестве основного элемента для вашего компонента, который будет отображаться.

  4. Визуализация компонента с использованием ComponentFactoryResolver (документы здесь: https://angular.io/guide/dynamic-component-loader).

...