169 похожих чатов

Господа, а есть способ получить ВСЕ роуты из приложения?

7 ответов

24 просмотра

А как вы хотите чтобы это было? Можно вывести массив всех роутов из router.config которые лежат. Там, насколько я помню, вообще все роуты перечислены.

Spid3r- Автор вопроса
🚀shmih🚀shmih🚀
А как вы хотите чтобы это было? Можно вывести масс...

Да все равно как ) Хоть консольлогом. Просто нужно все роуты продублировать в новом проекте, а там десятки вложенных модулей, каждый со своим роутингом внутри. Десятки, если не сотни, роутов 🙈

Spid3r
Да все равно как ) Хоть консольлогом. Просто нужно...

переносить же не просто роуты нужно, перенося один модуль с 30 роутами — вы все и перенесете разом

Spid3r- Автор вопроса

Там все сложнее. "Новый" проект — это урезанная версия текущего сайта для SSR. Там не будут все модули из оригинала, нужны лишь некоторые роуты фактически, а остальные роуты нужно просто продублировать в одном роутермодуле "просто чтобы были". Короче, сложно объяснить, задача нетривиальная, но все модули переносить мне точно не нужно.

если совсем коротко, то ... нет такой возможности

Spid3r
Там все сложнее. "Новый" проект — это урезанная ве...

совет выше от @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)

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта