#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. Мне нужно просмотреть код вашего компонента, чтобы точно определить проблему.