Угловая динамическая маршрутизация от API - PullRequest
0 голосов
/ 15 мая 2018

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

Мне нужно иметь возможность выбрать набор маршрутов из бэкэнда, поместить их в router.config, а затем перейти к выбранным маршрутам.

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

const mypaths: Routes = [
    {
        path: 'test',
        component: MyTestComponent
    }
];

this.router.config.unshift(mypaths[0]);
this.router.resetConfig(this.router.config);
this.router.navigateByUrl('test');

Вышеописанное работает как шарм.Как только я пытаюсь сделать то же самое, но вместо этого извлекаю из базы данных, MyTestComponent выдает ошибку, спрашивая, вставил ли я это в entryComponents (который, я имею. Ничего не изменил).

this.rest.getRoutes('TestMePlease')
    .subscribe(routes => {
        for ( const routePoss in routes ) {
            if ( routes.hasOwnProperty(routePoss) ) {
                for ( let i = 0; i < routes[routePoss].length; ++i ) {
                        this.router.config.unshift(<Route>routes[routePoss][i]);
                    }
                }
            }
            this.router.resetConfig(this.router.config);
            this.router.navigateByUrl('test');

Я заметил, что вывод при печати router.config после извлечения json включает ключ-значение (строка-строка) для компонента, чего нет в обычной печати конфигурации маршрутизатора:

{
  "path": "test"
},

против

{
  "component": "MyTestComponent",
  "path": "test"
},

Я что-то не так делаю с resetConfig, чтобы он не распознал отправку в паре путь-компонент-маршрут?

...