Typescript: управление маршрутизацией во время выполнения - PullRequest
0 голосов
/ 01 мая 2020

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

Я создаю стандартную c систему CMS для обзоров продуктов и хочу, чтобы одна система работала для всех различных продуктов.

Пример настройки маршрутизации:

const routes: Routes = [
   { path: '',  redirectTo: '/bread-machines/reviews/2020', pathMatch: 'full' },
   { pah: 'bread-machines/reviews/2020' , component: ProductReviewsComponent},
   { path: 'bread-machines/reviews/2020/:id' , component: ProductDetailComponent },

];

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

Ответы [ 4 ]

0 голосов
/ 02 мая 2020

экспортный класс AppRoutingModule {

конструктор (частный маршрутизатор: маршрутизатор) {router.config.pu sh ({путь: 'хлеб-машины / обзоры / 2020 /: id', компонент: ProductDetailComponent} );

}}

0 голосов
/ 02 мая 2020

, если вы хотите маршрутизацию на TS, используйте это

 constructor( private router: Router){}
 
 click()
   {
     this.router.navigate(['/path/path']);
   }
> if you want routing at html please use this model

    <button mat-button  routerLink="/path/path" >
               ADD EMAIL</button>
0 голосов
/ 02 мая 2020

Вы должны настроить параметризованные маршруты:

const appRoutes: Routes = [
  {
    path: "",
    children: [
      { path: ":category", component: YearComponent, },
      { path: ':category/reviews/:year', component: ProductReviewsComponent },
      { path: ':category/reviews/:year/:id', component: ProductDetailComponent }
    ]
  },
  { path: "**", component: PageNotFoundComponent },
];

Проверьте это демо, которое я сделал на основе вашего примера: https://stackblitz.com/edit/angular-6jhye5

Пожалуйста, спросите, есть ли у вас какие-либо сомнения относительно демонстрации или предложенного решения.

0 голосов
/ 02 мая 2020

Вам нужно использовать

router.config 

внутри конструктора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...