Динамическое отображение различных значений из объекта внутри объектов — Angular 9

#javascript #arrays #angular #object #config

#javascript #массивы #angular #объект #конфигурация

Вопрос:

У меня есть статический файл.config с некоторыми данными, которые необходимо отобразить в компоненте в одностраничном приложении. Модель для данных является согласованной (одни и те же ключи, но разные значения для каждого объекта), но в зависимости от URL-адреса, значения должны меняться для отображения данных, относящихся к текущей «странице».

 export const data = {
setOne: {
    industryId: 'set-one',
    industryName: 'Set One',
    firstPoint: 'lorum',
    secondPoint: ' Ipsum',
    thirdPoint: 'lorum',
    videoContent: ['https://www.youtube.com', 'https://www.youtube.com']
},
setTwo: {
    industryId: 'set-two',
    industryName: 'Set two',
    firstPoint: 'lorum',
    secondPoint: ' Ipsum',
    thirdPoint: 'lorum',
    videoContent: ['https://www.youtube.com', 'https://www.youtube.com']
},
setThree: {
    industryId: 'set-three',
    industryName: 'Set three',
    firstPoint: 'lorum',
    secondPoint: ' Ipsum',
    thirdPoint: 'lorum',
    videoContent: ['https://www.youtube.com', 'https://www.youtube.com']
},
  

};

Итак www.site.com/set-one должны отображаться значения в setOne и т.д..

Есть ли способ инициировать отображение разных значений в шаблоне HTML при изменении URL-адреса?

Я новичок в Angular и все еще разбираюсь в JavaScript, поэтому прошу прощения, если я пропустил какую-либо важную информацию.

Ответ №1:

Использование

 import { data } from '../config';

constructor(
    private router: Router
  ) {}

ngOnInit() {
 this.router.events
    .subscribe(event =>{
      if(event instanceof NavigationEnd) {
        const path = event.url.split('/').pop();
        switch(path) {
           case 'set-one':
              console.log(data['setOne']);
            break;
        }
      }
    })
}
  

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

1. Это тот же компонент. Поскольку это одностраничное приложение, набор данных должен меняться в зависимости от того, что такое URL-адрес. Этот метод будет отображать setOne только тогда, когда ему нужно показать setOne, если URL-адрес также установлен

2. Может быть, мне нужно изменить структуру данных

3. Если это один компонент, необходимо прослушать изменения маршрутизатора. Я обновил свой ответ