Как настроить маршруты в пользовательской угловой библиотеке из приложения - PullRequest
0 голосов
/ 10 октября 2019

Я хочу создать библиотеку, чтобы иметь возможность использовать ее в нескольких приложениях. Библиотека будет модулем, который позволяет подключаться через портал. Я хотел бы настроить конфигурации для создания этого модуля из приложения, конфигурации должны быть в состоянии переопределить источник маршрута (пример: «аутентификация» может быть переопределена «аутентификацией»). Поэтому я написал этот модуль:

    { path:  'authentification', component:  StyleRootComponent, children: [
        {
            path:  'portail',
            component:  PortailComponent
        },
        {
            path:  'passwordForgotten',
            component:  PasswordForgotenComponent
        }
        ]
    }
];

@NgModule({
    declarations: [StyleRootComponent, PortailComponent, PasswordForgotenComponent],
    imports: [
        RouterModule.forChild(appRoutes),
        AmplifyAngularModule,
        FormsModule,
        MatFormFieldModule,
        MatInputModule,
        MatCardModule,
        BrowserAnimationsModule,
        MatButtonModule
    ],
    exports: [StyleRootComponent]
})
export class LibraryConnectionModule { 
    static forRoot(config: any): ModuleWithProviders {

        appRoutes[0].path = config.urlAuth;

        return {
            ngModule: LibraryConnectionModule,
            providers: [
            AmplifyService,
            AuthentificationService,
            {
                provide: CognitoConfigsService,
                useValue: config.cognitoConfigs
            }
            ]
        }
    }
}

Из приложения я могу просто импортировать его

imports: [...,
LibraryConnectionModule.forRoot({cognitoConfigs : {}, urlAuth : "auth"}),
...,
]

Все работает, как и ожидалось, с JIT, но когда я пытаюсь собрать для производства (AOT), яполучил эту ошибку:
Ошибка при ошибке при компиляции шаблона 'AppModule'
Вызовы функций не поддерживаются в декораторах, но был вызван 'LibraryConnectionModule'.

Я знаю проблемупримерно об этой строке (я не знаю, почему): appRoutes[0].path = config.urlAuth;
Итак, в процессе производства я не могу выбрать URL-адрес своих компонентов из приложения ...
Кто-то знает, как я могу это сделать? (Я открыт для любых предложений)

заранее спасибо Макс

...