А как вы хотите чтобы это было? Можно вывести массив всех роутов из router.config которые лежат. Там, насколько я помню, вообще все роуты перечислены.
Да все равно как ) Хоть консольлогом. Просто нужно все роуты продублировать в новом проекте, а там десятки вложенных модулей, каждый со своим роутингом внутри. Десятки, если не сотни, роутов 🙈
переносить же не просто роуты нужно, перенося один модуль с 30 роутами — вы все и перенесете разом
Там все сложнее. "Новый" проект — это урезанная версия текущего сайта для SSR. Там не будут все модули из оригинала, нужны лишь некоторые роуты фактически, а остальные роуты нужно просто продублировать в одном роутермодуле "просто чтобы были". Короче, сложно объяснить, задача нетривиальная, но все модули переносить мне точно не нужно.
если совсем коротко, то ... нет такой возможности
совет выше от @dmmishchenko с router.config + import { Compiler, Component, Injector, OnInit } from '@angular/core'; import { Route, Router } from '@angular/router'; @Component({ templateUrl: './sitemap.component.html' }) export class SiteMapComponent implements OnInit { public urls: string[] = []; constructor(private _router: Router, private compiler: Compiler, private injector: Injector) { } ngOnInit() { this._router.config.forEach(i => { this.getPaths(i); }) } getPaths(route: Route, parent: string = '') { if (route.redirectTo) { return; } if (route.children) { route.children.forEach(i => { this.getPaths(i, parent + route.path); }); } else if (route.loadChildren) { (<any>this._router).configLoader.load(this.injector, route).subscribe(i => { i.routes.forEach(j => { this.getPaths(j, parent + route.path) }); }); } else if (route.path != null) { this.setPath(route.path, parent); } } setPath(path, parent) { let fullPath: string; if (path != null) { if (parent) { fullPath = /${parent}/${path}; } else { fullPath = /${path} } } this.urls.push(fullPath) } } вместо (<any>this._router).configLoader.load (<any>this._router).configLoader.loadChildren (если у вас >= 14)
Проверю, спасибо.
Обсуждают сегодня