Angular-google-maps: рдХреИрд╕реЗ рдЪрд░ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ initilize

рдХреЛ рдирд┐рд░реНрдорд┐рдд 3 рдлрд╝рд░ре░ 2017  ┬╖  12рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: SebastianM/angular-google-maps

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрд╡рд╛ (рд╕рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛) рдореЗрдВ Google рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рд╣реИред

рдореИрдВ ApiKey рдЪрд░ рдХреЛ @NgModule рдХреЗ рдЕрдВрджрд░ рдХреИрд╕реЗ рдкрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

`@NMModule ({

рдЖрдпрд╛рдд: [
BrowserModule,
рд░рд╛рд╖реНрдЯреНрд░рдордВрдбрд▓,
рдлреЙрд░реНрдо рдореЛрдб,
AgmCoreModule.forRoot ({
apiKey: 'Your_KEY' // <- рдореИрдВ рдПрдХ рдирд┐рд░рдВрддрд░ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ !!! рдореИрдВ рдПрдХ рдЪрд░ рдХреИрд╕реЗ рдкрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
})
],
рдкреНрд░рджрд╛рддрд╛: [],
рдШреЛрд╖рдгрд╛рдПрдБ: [AppComponent],
рдмреВрдЯрд╕реНрдЯреНрд░реИрдк: [AppComponent]
}) `

stale discussion / question

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд┐рд▓реНрдб рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдЬреИрд╕реЗ рдХреЛрдгреАрдп-рдХреНрд▓реА рдпрд╛ рдХрд╕реНрдЯрдо рд╡реЗрдмрдкреИрдХ рдпрд╛ ...) рдФрд░ рдЪрд░ рдХрд╣рд╛рдБ рд╕реЗ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рдереЛрдбрд╝рд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрдм рдЖрдк AOT рд╕рдВрдХрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреЛ @NgModule рдХреЗ рдЕрдВрджрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЧрддрд┐рд╢реАрд▓ рдХреЛрдб рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВрдиреЗ рдЬреЛ рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╣ рдореЗрд░реЗ рдореБрдЦреНрдп app.module рдореЗрдВ 'рдЖрд▓рд╕реА рдХреЙрдиреНрдлрд┐рдЧ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░' рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЬрд╣рд╛рдВ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирдХреНрд╢реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдореИрдВ forRoot рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:

AgmCoreModule.forRoot()

рдореЗрд░реЗ app.module.ts рдореЗрдВ:
рдЗрдВрдЬреЗрдХреНрд╢рди рдЯреЛрдХрди рдЖрдпрд╛рдд рдХрд░реЗрдВ:

import { LAZY_MAPS_API_CONFIG }
  from 'angular2-google-maps/core/services';

@NgModule рдореЗрдВ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ:

providers: [
    {provide: LAZY_MAPS_API_CONFIG, useClass: GoogleMapsConfig}
  ],

рдФрд░ рдЙрд╕ 'GoogleMapsConfig' рд╡рд░реНрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдЬреЛ LazyMapsAPILoaderConfigLiteral рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ('рд╕реЗ' рдХреЛрдгреАрдп 2-рдЧреВрдЧрд▓-рдореИрдкреНрд╕ / рдХреЛрд░ / рд╕реЗрд╡рд╛рдУрдВ ') рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗред

@Injectable()
class GoogleMapsConfig {
  apiKey: string;
...
  constructor() {
    apiKey = getMyApiKeyFromSomewhere()
...
  }
}

рдЙрд╕ рдЗрдВрдЬреЗрдХреНрдЯреЗрдмрд▓ рдореЗрдВ рдореИрдВ рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдХрд╣реАрдВ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрдврд╝ рд╕рдХрддрд╛ рд╣реВрдВред
(рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдХреЛрдгреАрдп-рдХреНрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рд╡рд╣рд╛рдВ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдбреЛрдореЗрди рдкрдврд╝реЗрдВ ... рдпрд╛ рдХрд┐рд╕реА рд╕рд░реНрд╡рд░рд╛рдЗрдб рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ ...

рд╕рднреА 12 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд┐рд▓реНрдб рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдЬреИрд╕реЗ рдХреЛрдгреАрдп-рдХреНрд▓реА рдпрд╛ рдХрд╕реНрдЯрдо рд╡реЗрдмрдкреИрдХ рдпрд╛ ...) рдФрд░ рдЪрд░ рдХрд╣рд╛рдБ рд╕реЗ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рдереЛрдбрд╝рд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрдм рдЖрдк AOT рд╕рдВрдХрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреЛ @NgModule рдХреЗ рдЕрдВрджрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЧрддрд┐рд╢реАрд▓ рдХреЛрдб рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВрдиреЗ рдЬреЛ рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╣ рдореЗрд░реЗ рдореБрдЦреНрдп app.module рдореЗрдВ 'рдЖрд▓рд╕реА рдХреЙрдиреНрдлрд┐рдЧ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░' рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЬрд╣рд╛рдВ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирдХреНрд╢реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдореИрдВ forRoot рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:

AgmCoreModule.forRoot()

рдореЗрд░реЗ app.module.ts рдореЗрдВ:
рдЗрдВрдЬреЗрдХреНрд╢рди рдЯреЛрдХрди рдЖрдпрд╛рдд рдХрд░реЗрдВ:

import { LAZY_MAPS_API_CONFIG }
  from 'angular2-google-maps/core/services';

@NgModule рдореЗрдВ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ:

providers: [
    {provide: LAZY_MAPS_API_CONFIG, useClass: GoogleMapsConfig}
  ],

рдФрд░ рдЙрд╕ 'GoogleMapsConfig' рд╡рд░реНрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдЬреЛ LazyMapsAPILoaderConfigLiteral рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ('рд╕реЗ' рдХреЛрдгреАрдп 2-рдЧреВрдЧрд▓-рдореИрдкреНрд╕ / рдХреЛрд░ / рд╕реЗрд╡рд╛рдУрдВ ') рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗред

@Injectable()
class GoogleMapsConfig {
  apiKey: string;
...
  constructor() {
    apiKey = getMyApiKeyFromSomewhere()
...
  }
}

рдЙрд╕ рдЗрдВрдЬреЗрдХреНрдЯреЗрдмрд▓ рдореЗрдВ рдореИрдВ рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдХрд╣реАрдВ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрдврд╝ рд╕рдХрддрд╛ рд╣реВрдВред
(рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдХреЛрдгреАрдп-рдХреНрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рд╡рд╣рд╛рдВ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдбреЛрдореЗрди рдкрдврд╝реЗрдВ ... рдпрд╛ рдХрд┐рд╕реА рд╕рд░реНрд╡рд░рд╛рдЗрдб рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ ...

рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рдКрдкрд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдпрд╣ рдПрдУрдЯреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА Google рдореИрдкреНрд╕ рдХреЛ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ - рдЗрд╕рд▓рд┐рдП рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдкрддрд╛ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИред

рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдХрдВрдкрд╛рдЗрд▓-рдЯрд╛рдЗрдо рдЧреНрд▓реЛрдмрд▓ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ (рдПрдкреАрдЖрдИ рдХреАрдЬрд╝ рдЬреЛ рдХрд┐ рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдк рдЖрджрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрджрд▓ рд╕рдХрддреА рд╣реИ) рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд-рдбрд┐рдлрд╛рдЗрди-рд╡реЗрдмрдкреИрдХ-рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

import { LAZY_MAPS_API_CONFIG, LazyMapsAPILoaderConfigLiteral } from 'angular2-google-maps/core/services';

@Injectable()
export class GoogleMapsConfig implements LazyMapsAPILoaderConfigLiteral {
  apiKey: string = CONFIG.googleMapsAPIKey;
}

@NgModule({
  declarations: [...],
  imports: [...],
  providers: [{provide: LAZY_MAPS_API_CONFIG, useClass: GoogleMapsConfig}],
  bootstrap: [AppComponent]
})
export class AppModule {}

рдФрд░, рдореЗрд░реЗ рдЖрд▓рд╕реА рд▓реЛрдбреЗрдб рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЬрд╣рд╛рдВ рдореИрдВ рдореИрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, AgmCoreModule.forRoot() рдХреЙрд▓ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рдореИрдВ рдХреЛрдгреАрдп 4 рдФрд░ CLI 1.0.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ @kyranjamie рджреНрд╡рд╛рд░рд╛ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ, рд╣рдо рдЬреЛ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдареЗрд╕ рдмрдирд╛рдо рджреЗрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдХреБрдВрдЬреА рд╕реЗрдЯ рд╣реИ

рдпрд╣ рдореЗрд░рд╛ рдХреЛрдб рд╣реИ, рдореИрдВ рдХреНрдпрд╛ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ?

`
@ рдЗрдВрдЬреЗрдХреНрд╢рди ()
рдирд┐рд░реНрдпрд╛рдд рд╡рд░реНрдЧ
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдХреЗ: рд╕реНрдЯреНрд░рд┐рдВрдЧ;
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ () {
рдЕрдЧрд░ (environment.production) {
this.apiKey = рдХреБрдВрдЬреА рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ
};
}
}
@NgModule ({
рдШреЛрд╖рдгрд╛рдПрдБ: [
AppComponent
],
рдЖрдпрд╛рдд: [
BrowserModule,
рдлреЙрд░реНрдо рдореЛрдб,
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓
HttpModule,
AppRoutModule,
NgbModule.forRoot (),
рдиреМрд▓рд┐рд╕реНрдбрд░рдореЙрдбрд▓,
AgmCoreModule.forRoot ()
],
рдкреНрд░рджрд╛рддрд╛: [
{рдкреНрд░рджрд╛рди рдХрд░реЗрдВ: LAZY_MAPS_API_CONFIG, useClass: GoogleMapsConfig}
],
рдмреВрдЯрд╕реНрдЯреНрд░реИрдк: [AppComponent]
})
рдирд┐рд░реНрдпрд╛рдд рд╡рд░реНрдЧ AppModule {

}
`

рдХреНрдпрд╛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ if (environment.production) рдХрднреА рднреА рд╕рдЪ рд╣реЛ рдЬрд╛рдПрдЧрд╛?

рдореИрдВрдиреЗ рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдзрдиреНрдпрд╡рд╛рдж рдХреЛ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ рд╣реИ

@daBishMan рдпрд╛ @kyranjamie , рдЕрдЧрд░ рдЖрдк рд▓реЛрдЧ рдХрднреА рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ @kyranjamie , рдореЗрд░рд╛ рдореБрджреНрджрд╛ рдЖрдкрдХреЗ рдЬреИрд╕рд╛ рд╣реА рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, ... рдПрдХ рдЙрддреНрдкрд╛рдж рдирд┐рд░реНрдорд╛рдг рдкрд░ рдЬрд╣рд╛рдБ AOT рдХрд╛ рд╕рдВрдмрдВрдз рд╣реИ, maps.google.com рдХреЗ рдЕрдиреБрд░реЛрдз рдореЗрдВ agm-map рдЖрд░рдВрднреАрдХрд░рдг, ... рдХреЛрдИ URL API-KEY рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рднреЗрдЬрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ ред рдЗрд╕рд▓рд┐рдП, рдпрд╣ "рд▓рд╛рдкрддрд╛ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА" рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реИред

@ jorrit-wehelp, рдЖрдкрдХреЗ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореЗрд░реЗ рд▓рд┐рдП рдЬреЛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдЙрд╕рдореЗрдВ рдореИрдВ рдиреАрдЪреЗ рд╣реВрдБтАжред

import {Injectable} from "@angular/core";
import {LazyMapsAPILoaderConfigLiteral} from "@agm/core";
import {Config} from "../providers/config";

@Injectable()
export class MapsConfig implements LazyMapsAPILoaderConfigLiteral{
  public apiKey: string
  public libraries: string[]
  constructor(config: Config) {
    this.apiKey = config.get("MAP_API_JS_KEY")
    this.libraries = ['places']
    console.log("lazy map init with " + this.apiKey)
  }
}

рдореЗрд░реЗ рдореБрдЦреНрдп @ngmodule рдореЗрдВ , рдореЗрд░реЗ рдкрд╛рд╕ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдореЗрдВ рдпрд╣ рд╣реИ ...

    {
      provide: LAZY_MAPS_API_CONFIG,
      useClass: MapsConfig,
      deps: [Config]
    }

рдХреЙрдиреНрдлрд┐рдЧрд░ рд╡рд░реНрдЧ рдХрд╛ рд╕рдВрджрд░реНрдн рдПрдХ рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рд╡реЗрдмрдкреИрдХ рд╡реИрд░рд┐рдПрдмрд▓-рд░рд┐рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рд╣реИ, рдЬреЛ рджреЗрд╡ рдпрд╛ рдкреНрд░реЛрдбрдХреНрд╢рди рдореЛрдбреНрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЗ рдореИрдк рдХрд╛ рд╕реЗрдЯрдЕрдк рдХрд░рддрд╛ рд╣реИред

рдирдорд╕реНрддреЗ

рдореИрдВ @ jorrit-wehelp рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдбрд╛рдпрдиреЗрдорд┐рдХ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧрдЖрдЙрдЯ рдФрд░ рд▓реЙрдЧ рдЗрди рдХреЗ рдмрд╛рдж рдореЗрд░реЗ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ agmKey рдорд╛рди рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдорд╛рдирдЪрд┐рддреНрд░ рджреЗрдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ

рдореИрдВрдиреЗ рдЬреЛ рдХрд┐рдпрд╛ рд╡рд╣ рд╣рдорд╛рд░реЗ рдореЙрдбреНрдпреВрд▓ рдШрдЯрдХ рдХреА рддрд░рд╣ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рд╣рдордиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЬреЛрдбрд╝рд╛
рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ class GoogleMapsConfig рдФрд░ {provide: LAZY_MAPS_API_CONFIG, useClass: GoogleMapsConfig} рдирдХреНрд╢реЗ рдХреЗ рдЕрдВрджрд░ @component рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛

`` `...
рдЖрдпрд╛рдд {LAZY_MAPS_API_CONFIG, LazyMapsAPILoaderConfigLiteral} '@ agm / core' рд╕реЗ;
'@ pl-core / _services' рд╕реЗ рдЖрдпрд╛рдд {AuthService};

@ рдЗрдВрдЬреЗрдХреНрд╢рди ();
рд╡рд░реНрдЧ GoogleMapsConfig рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдХреЗ: рд╕реНрдЯреНрд░рд┐рдВрдЧ;
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ () {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ('INSIDE MAPs'); // рдпрд╣ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реИ
рдпрд╣ред _authService.currentUser ()ред agmKey: '';
_authService.getMapKey $ .subscribe ((рдХреБрдВрдЬреА) => {
this.apiKey = key;
})
}
}

@ рд╕рдореБрджрд╛рдп ({
рдЪрдпрдирдХрд░реНрддрд╛: 'рдорд╛рдирдЪрд┐рддреНрд░-COMP',
templateUrl: 'ред
styleUrls: ['./dy-map.component.scss'],
рдкреНрд░рджрд╛рддрд╛: [{рдкреНрд░рджрд╛рди рдХрд░реЗрдВ: LAZY_MAPS_API_CONFIG, рдЙрдкрдпреЛрдЧ: GoogleMapsConfig}],
рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди: ViewEncapsulation.None
})

`` `
рдЬрдм рд╣рдо рд▓реЙрдЧрдЖрдЙрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рд▓реЙрдЧрд┐рди рдХрд░рддреЗ рд╣реИрдВ рддреЛ GoogleMapsConfig рд╡рд░реНрдЧ рдХреЗ рдЕрдВрджрд░ рдирд┐рдпрдВрддреНрд░рдг рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ ??

рдореЗрд░реЗ рдкрд╛рд╕ @ jorrit-wehelp рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд░реБрдХ-рд░реБрдХ рдХрд░ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдереА рдЬрд╣рд╛рдВ рдореЗрд░реА рд╕реЗрд╡рд╛ рдЬреЛ рдПрдкреА рдХреБрдВрдЬреА рджреЗрддреА рд╣реИ рд╡рд╣ рд╣рдореЗрд╢рд╛ рдЗрд╕реЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░реЗрдЧреАрдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрддреНрд╡ред рдЬрдмрд░рджрд╕реНрддреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПрдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдм рддрдХ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХреА рдЧрдИ рдереА, рдореИрдВрдиреЗ рдмрд╕ рдпрд╣реА рдХрд┐рдпрд╛ рдерд╛:

рдореЗрд░реЗ рдорд╛рдирдЪрд┐рддреНрд░ рдШрдЯрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рддрд╛:

constructor(private envService: EnvironmentService) {
    this.envService.environment$.subscribe(environment => {
      // setTimeout is to wait a beat since my GoogleMapsConfig receives
      // the key at the same instant.
      setTimeout(() => this.gmapsApiKeyReady = true);
    });
  }

рдлрд┐рд░ рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ:

<agm-map *ngIf="gmapsApiKeyReady" ...></agm-map>

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рд╕рднреА рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛ рдпрд╛ рдпрджрд┐ рдпрд╣ рдХреЗрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреЗрд╕ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдПрдВрдЧреБрд▓рд░ рдХреА рдПрдУрдЯреА рд╕рдВрдХрд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдПрдЧреНрдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИред рдпрд╣рд╛рдВ рдореЗрд░реЗ рдкрд╛рд╕ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЕрд╡рд▓реЛрдХрди рд╣реИред

рдореИрдВ рдПрдХ рд╣рд╛рд░реНрдб рдХреЛрдбрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЬреИрд╕реЗ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореБрдЭреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдкреАрдЖрдИ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдПрдкреАрдЖрдИ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛрдЧреАред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдиреЗ .NET рдмреИрдХ-рдПрдВрдб рдХреЛ рдХреБрдЫ рдЬрд╛рд╡рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдерд╛, рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рд╡реИрд╢реНрд╡рд┐рдХ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, Example.Namespace.GoogleMapsApiKey рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрддред рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдерд╛ред

// typings.d.ts
declare namespace Example.Namespace {
    export const GoogleMapsApiKey: string;
}

// app.module.ts
import { AgmCoreModule } from "@agm/core";
import { NgModule } from "@angular/core";

@NgModule({
    // ...
    imports: [
        AgmCoreModule.forRoot({
            apiKey: Example.Namespace.GoogleMapsApiKey,
        })
    ],
    // ...
})
export class AppModule {}

рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ AOT рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдорд╛рди рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХреЙрдиреНрд╕реНрдЯреЗрдмрд▓ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рддреИрдпрд╛рд░ рдХреА рдЬрд╛рдПрдЧреАред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдУрдЯреА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗрд╡рд▓ рдХреЛ рдХрдВрдкрд╛рдЙрдВрдб рд╕рдордп рдкрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдЬреЛ рд╣реЛ рд░рд╣рд╛ рдерд╛, рд╡рд╣ " рдХреЗрд╡рд▓ рдЖрд░рдВрднрд┐рдХ рдЪрд░ рдФрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ " рддреНрд░реБрдЯрд┐ рдереА, рдЬреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреЗ рдХреЛрдгреАрдп рд╕реАрдПрд▓рдЖрдИ рд╕реЗ рдирд┐рдХрд▓ рд░рд╣реА рдереАред рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ LAZY_MAPS_API_CONFIG рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдмрдирд╛рдпрд╛, рддреЛ рдореИрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдХреНрд╖рдо рдерд╛ред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрд╛рд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╣рд╛рд▓ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рдереАред рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕