Je crée actuellement une bibliothèque angulaire personnalisée qui dépend de l'environnement des hôtes. Idéalement, je voudrais simplement passer quelques variables d'environnement dans la méthode forRoot
de mon module pour un service à utiliser selon l'application qui l'utilise et l'environnement dans lequel elles se trouvent. Cependant, je reçois une erreur lors de la compilation avec angular-cli et juste en passant des variables de mon environment.ts
en app.module.ts
.Transfert de fichiers d'environnement dans un module Angular 2 personnalisé
ERREUR en erreur: Erreur rencontrée lors de la résolution statique des valeurs de symbole. Les appels de fonction ne sont pas pris en charge. Envisagez de remplacer la fonction ou lambda par une référence à une fonction exportée (position 19:24 dans le fichier .ts original), en résolvant l'environnement de symbole dans /Users/griffin/DCP/customer-dashboard/src/environments/environment.ts, en résolvant Symbole AppModule dans /Users/griffin/DCP/customer-dashboard/src/app/app.module.ts, résolution du symbole AppModule dans/Users/griffin/DCP/customer-
L'index du module personnalisé est actuellement configuré comme ceci :
@NgModule({
declarations: [],
exports: [],
providers: [
AuthService
],
imports: [
HttpModule,
BrowserModule
]
})
export class CommonAuthModule {
static forRoot(config: AuthServiceConfig): ModuleWithProviders {
return {
ngModule: CommonAuthModule,
providers: [
{provide: AuthServiceConfig, useValue: config }
]
};
}
Et dans un projet angulaire j'importe comme ceci:
import { CommonAuthModule } from '@dcp/common-auth';
import { environment } from '../environments/environment';
@NgModule({
declarations: [
AppComponent
],
imports: [
CommonAuthModule.forRoot(environment.authConfig) // Import here
...
})
export class AppModule { }
environment.authConfig est simple objet
authConfig: {
authenticationUrl: 'https://streamworks.auth0.com/login?client=',
clientId: 'f98h3f3fdsousfoihohfjwe0',
auth0Domain: 'streamworks.auth0.com'
}
Et AuthServiceConfig est une classe simple
export class AuthServiceConfig {
clientId: string = ''
auth0Domain: string = '';
authenticationUrl: string = '';
}
J'ai vu des problèmes similaires comme this poste. Est-ce lié à la compilation AoT? J'ai essayé de construire le projet en contournant AoT mais j'ai toujours la même erreur.
Certainement sur la bonne voie. Mais comment puis-je fournir COMMON_CONFIG comme valeur pour "useValue" dans ma bibliothèque via la méthode forRoot? – gciluffo