@yaroslav1996

Вложенный роутинг для интернет магазина на Angular 9 + ng-universal, как организовать?

Доброго времени суток, дорогие друзья разработчики. Вообщем нужно реализовать правильно вложенность маршрутизации, суть в том что человек будет добавлять категории с помощью админ панели. И соотвественно мне каким то образом нужно сделать динамический роутинг типа:

vash-domen.ru/glavnaya-categotiya-1/tovar-1
vash-domen.ru/glavnaya-categotiya-2/tovar-1
vash-domen.ru/glavnaya-categotiya-1/podcategoriya-1/tovar-1
vash-domen.ru/glavnaya-categotiya-2/podcategoriya-3/tovar-1

5ed9d30332ad1438496664.png

Использую:
Angular 9;
@nestjs/ng-universal

Суть вопрос как это сделать и сделать хорошо c точки зрения Angular, спасибо заранее за помощь :)
  • Вопрос задан
  • 514 просмотров
Решения вопроса 1
syamskoy
@syamskoy
Тоже искал ответ на этот вопрос, но так и не нашел какого-то решения из коробки. Сделал в итоге так:
Роутинг:
const routes: Routes = [
    {
        path: 'category', component: LayoutShopComponent, children: [
            {path: '**', component: CategoryListComponent},
        ]
    },
];


В самом компоненте подписываюсь на изменение урла, и из урла уже достаю текущую категорию, что-то вроде этого:

constructor(
        private route: ActivatedRoute
    ) {
        route.url.subscribe((data) => {
            this.child = data.map(value => value.path);
            const arraySize = data.length;
            if (arraySize > 0) {
                this.parentSlug = data[arraySize - 1].path;
            }
        });
        this.loadData();
    }


И в html просто ходим по категориям:
<a routerLink="{{category.slug}}" class="text-body">{{category.name}}</a>


Возможно, есть более удачные решения, но найти не удалось.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы