У меня проблема с моим угловым приложением.
когда я пытаюсь собрать с параметром --prod (это означает, что aot имеет значение true)
location.hostname, которое есть в моем коде, возвращает null, и я не могу взаимодействовать с моим API.
Теперь я прочитал, потому что мне нужно использовать фабрику, чтобы мой код выполнялся только во время выполнения, но я не уверен, как это сделать.
Ниже кода, который я использовал, который не работает, потому что мой URL выглядит так:
http://ipaddress/path/[Object%20object]/path/path/path/path/api/login/
[...]
const REDIRECT_URI = new InjectionToken<string>('REDIRECT_URI');
export function redirectUriFactory() {
//return `${location.host}`;
return window.location.host;
}
[...]
@NgModule({
imports: [
CommonModule,
],
exports: [
NbAuthModule,
],
declarations: [],
})
export class CoreModule {
constructor(@Optional() @SkipSelf() parentModule: CoreModule) {
throwIfAlreadyLoaded(parentModule, 'CoreModule');
}
static forRoot(): ModuleWithProviders {
return <ModuleWithProviders>{
ngModule: CoreModule,
providers: [
...NB_CORE_PROVIDERS,
{provide: REDIRECT_URI, useFactory: redirectUriFactory}
],
};
}
}
[...]
const NB_CORE_PROVIDERS = [
...DataModule.forRoot().providers,
...NbAuthModule.forRoot({
providers: {
email: {
service: NbEmailPassAuthProvider,
config: {
delay: 0,
token: { key: 'token' },
logout: {
endpoint: ''
},
login: {
rememberMe: true,
alwaysFail: false,
endpoint: 'http://' + REDIRECT_URI +'/path/path/path/path/api/login/',
method: 'post',
redirect: {
success: '/',
failure: null,
},
},
},
},
},
[...]
любая помощь будет очень ценится