Я использую Angular 5 для создания небольшого веб-сайта типа брошюры. Пока что у меня настроены маршруты, и заголовок страницы динамически меняется в зависимости от активированного маршрута. Я получил эту работу, используя инструкции в этом блоге: https://toddmotto.com/dynamic-page-titles-angular-2-router-events
В настоящее время я храню свои маршруты и заголовки в app.module.ts как таковой:
imports: [
BrowserModule,
RouterModule.forRoot([
{
path: '',
component: HomeComponent,
data: {
title: 'Home'
}
},
{
path: 'about',
component: AboutComponent,
data: {
title: 'About'
}
},
{
path: 'products-and-services',
component: ProductsServicesComponent,
data: {
title: 'Products & Services'
}
},
{
path: 'world-class-laundry',
component: LaundryComponent,
data: {
title: 'World Class Laundry'
}
},
{
path: 'contact',
component: ContactComponent,
data: {
title: 'Contact'
}
},
{
path: '**',
component: NotFoundComponent,
data: {
title: 'Page Not Found'
}
}
])
],
Я хотел бы также хранить там свои метаописания, если добавить их в data:
это будет достаточно просто.
Я извлекаю данные заголовка с помощью следующего кода, который указан в ссылке на блог выше:
ngOnInit() {
this.router.events
.filter((event) => event instanceof NavigationEnd)
.map(() => this.activatedRoute)
.map((route) => {
while (route.firstChild) route = route.firstChild;
return route;
})
.filter((route) => route.outlet === 'primary')
.mergeMap((route) => route.data)
.subscribe((event) => {
this.titleService.setTitle(event['title']);
});
}
Итак, мой вопрос, есть ли способ динамически установить мета-описание, используя тот же метод? Если есть способ объединить заголовок страницы и функцию мета-описания, это было бы идеально.
У меня очень ограниченная угловая тренировка, так что это может быть нубийским вопросом. Я больше похож на парня дизайнер /CSS/HTML.