Изменение содержимого компонента в соответствии с URL в Angular 11

#javascript #angular #routes #angular2-routing

#javascript #angular #маршруты #angular2-маршрутизация

Вопрос:

У меня есть один компонент, в котором я хочу отображать данные в соответствии с одной из категорий. категории — [спорт, автомобили, мода, политика].

В моем NewsCategoriesComponent мне нужно показывать измененные данные при нажатии на кнопки навигации.

Как я могу изменить данные компонента после нажатия на кнопки навигации?

вот мой маршрут

 const routes: Routes = [
  {path: '', component: DashboardComponent},
  {path: 'category', component: NewsCategoriesComponent},
  {path: '**', component: DashboardComponent}
];
 

Комментарии:

1. Скорее всего, через a Resolver , который считывает ActivatedRoute и загружает данные, основываясь на данных category .

2. Пожалуйста, добавьте код для отображения элемента в компоненте

Ответ №1:

Вы можете передать категорию в качестве параметра в вашем маршруте:

 const routes: Routes = [
  {path: '', component: DashboardComponent},
  {path: 'category/:category', component: NewsCategoriesComponent},
  {path: '**', component: DashboardComponent}
];
 

Затем прочитайте параметр из маршрута в NewsCategoriesComponent:

 import { Component } from '@angular/core';
import { ActivatedRoute } from '@angular/router';

@Component({
  selector: 'app-news-categories',
  templateUrl: './news-categories.component.html',
  styleUrls: ['./news-categories.component.css']
})

export class NewsCategoriesComponent {
  category: string;

  constructor(private actRoute: ActivatedRoute) {
    this.category = this.actRoute.snapshot.params.category;
  }
}
 

Комментарии:

1. он показывает правильное содержимое только один раз после нажатия на кнопки навигации, оно не меняется.

2. Мне нужно просмотреть код вашего компонента, чтобы точно определить проблему.