Как перейти к компоненту из общего модуля с помощью App_Initializer?

avatar
afaaqa dabookick
8 августа 2021 в 20:32
31
0
0

Я создал модуль с именем response-types.module.ts в общей папке.

Здесь я создал инициализатор

const initializer = (apiService: ApiService) => {
    return () => {
        return apiService.getIsActiveType()
            .then(res => res.json())
            .then(res => {
                document.body.classList.add(res.type);
            });
    };

и

@NgModule({
providers: [
    {
        provide: APP_INITIALIZER,
        useFactory: initializer,
        deps: [ApiService],
        multi: true,
    },
],
}) export class ResponseTypes{ }
}

Теперь это работает, так как я хотел выполнить некоторые действия прямо перед всем, и это работает, но теперь я хочу перейти к компоненту, используя router.navigate например

return apiService.getIsActiveType()
            .then(() => route.navigate(['./login']))
            .then(res => {
                document.body.classList.add(res.type);
            });

но это не работает, даже если я создал свойство маршрута, например

route: Router;

при импорте маршрутизатора, но он говорит, что маршрутизатор не определен.

Я не хочу использовать windows.location.href.

Как мне перейти к компоненту из этого модуля или app.module, если это возможно, чтобы я переместил туда свою логику инициализатора?

Источник
Aviad P.
9 августа 2021 в 06:17
0

Вы пытались добавить Router к deps:[...]?

Ответы (0)