Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

174
Visualizações
Pasar datos de configuración usando forRoot

Estoy tratando de pasar datos de configuración a una biblioteca personalizada en Angular.

En la aplicación de los usuarios , pasarán algunos datos de configuración a mi biblioteca usando forRoot

 // Import custom library import { SampleModule, SampleService } from 'custom-library'; ... // User provides their config const CustomConfig = { url: 'some_value', key: 'some_value', secret: 'some_value', API: 'some_value' version: 'some_value' }; @NgModule({ declarations: [...], imports: [ // User config passed in here SampleModule.forRoot(CustomConfig), ... ], providers: [ SampleService ] }) export class AppModule {}

En mi biblioteca personalizada , específicamente index.ts , puedo acceder a los datos de configuración:

 import { NgModule, ModuleWithProviders } from '@angular/core'; import { SampleService } from './src/sample.service'; ... @NgModule({ imports: [ CommonModule ], declarations: [...], exports: [...] }) export class SampleModule { static forRoot(config: CustomConfig): ModuleWithProviders { // User config get logged here console.log(config); return { ngModule: SampleModule, providers: [SampleService] }; } }

Mi pregunta es ¿cómo hago que los datos de configuración estén disponibles en el SampleService de la biblioteca personalizada?

Actualmente SampleService contiene lo siguiente:

 @Injectable() export class SampleService { foo: any; constructor() { this.foo = ThirdParyAPI(/* I need the config object here */); } Fetch(itemType:string): Promise<any> { return this.foo.get(itemType); } }

He leído los documentos en Proveedores , sin embargo, el ejemplo de forRoot es bastante mínimo y no parece cubrir mi caso de uso.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Ya casi llega, simplemente proporcione SampleService y config en su módulo como se muestra a continuación:

 export class SampleModule { static forRoot(config: CustomConfig): ModuleWithProviders<SampleModule> { // User config get logged here console.log(config); return { ngModule: SampleModule, providers: [SampleService, {provide: 'config', useValue: config}] }; } }
 @Injectable() export class SampleService { foo: string; constructor(@Inject('config') private config:CustomConfig) { this.foo = ThirdParyAPI( config ); } }

Actualizar :

Dado que Angular 7 ModuleWithProviders es genérico, necesita ModuleWithProviders<SampleService>

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda