2017-03-24 15 views
2

ich APP_INITIALIZER in meiner app bin mit, und ich habe es Setup in app.module.ts wie bei den notwendigen Importe folgt:Funktionsaufrufe werden nicht unterstützt. Betrachten Sie die Funktion oder Lambda mit einem Verweis zu ersetzen, um eine exportierte Funktion

@NgModule({ 
    ... 
    providers: [ ..., ContextService, { provide: APP_INITIALIZER, useFactory: (context: ContextService) =>() => context.load(), deps: [ContextService], multi: true } ], 
    ... 
}) 

ich der folgende Fehler, wenn ich neu baue (ng build -watch), nachfolgende Builds funktionieren gut.

Fehler in Fehler beim statischen Auflösen von Symbolwerten. Funktionsaufrufe werden nicht unterstützt. Man betrachte die Funktion oder Lambda mit einem Verweis auf eine exportierte Funktion (Position 24:46 in der ursprünglichen .ts Datei) ersetzt, die Lösung Symbol AppModule in C: /.../ app.module.ts

ich habe als so () => context.load() in eine exportierte Funktion in der gleichen Datei versucht zu bewegen:

export function loadContext(context: ContextService) { 
    return() => context.load(); 
} 

... dann den Anbieter Abschnitt @NgModule geändert:

@NgModule({ 
     ... 
     providers: [ ..., ContextService, { provide: APP_INITIALIZER, useFactory: (context: ContextService) => loadContext(context), deps: [ContextService], multi: true } ], 
     ... 
    }) 

Der Build schlägt anfangs immer noch wie oben mit demselben Fehler fehl. Nachfolgende Builds funktionieren einwandfrei.

Wie löse ich diesen anfänglichen Buildfehler?

+1

'useFactory: loadContext' https://github.com/angular/angular/issues/11262 – yurzui

Antwort

7

die Inline-Verschluss auf eine Funktion verschieben:

function loadContext(context: ContextService) { 
    return() => context.load(); 
} 

@NgModule({ 
    ... 
    providers: [ ..., ContextService, { provide: APP_INITIALIZER, useFactory: loadContext, deps: [ContextService], multi: true } ], 
    ... 
}) 

See How to pass parameters rendered from backend to angular2 bootstrap method auch

+1

dass Yep tut es ..., Danke! – HGPB

+0

Freut mich zu hören. Danke für die Rückmeldung :) –

Verwandte Themen