2017-03-28 7 views
5

I CookieXSRFStrategy für XSRFStrategy in app.module.ts mit UhrCookieXSRFStrategy arbeiten nicht in AOT-Modus @angular

providers: [ 
    { provide: APP_BASE_HREF, useValue: '/order/' }, 
    { provide: XSRFStrategy, useValue: new CookieXSRFStrategy('csrftoken', 'X-CSRFToken') }, 
    { provide: RequestOptions, useClass: DefaultRequestOptions } 
    ], 

adaequat bin Bereitstellung/dienen zum zweiten Build aber wenn sie mit --prod Flagge Gebäude, diesen Fehler:

ERROR in Error encountered resolving symbol values statically. Function calls are not supported. Consider replacing the function or lambda with a reference to an exported function (position 50:34 in the original .ts file), resolving symbol AppModule in E:/repo/src/app/app.module.ts

ng --Version

@angular/cli: 1.0.0 
node: 6.9.1 
os: win32 x64 
@angular/common: 4.0.0 
@angular/compiler: 4.0.0 
@angular/core: 4.0.0 
@angular/forms: 4.0.0 
@angular/http: 4.0.0 
@angular/platform-browser: 4.0.0 
@angular/platform-browser-dynamic: 4.0.0 
@angular/router: 4.0.0 
@angular/animations: 4.0.0 
@angular/cli: 1.0.0 
@angular/compiler-cli: 4.0.0 

Antwort

9

Beantwortung meiner Frage gefunden, dass ich einen Verweis auf eine exportierte Funktion verwenden, so verwenden wie:

providers: [ 
    { provide: APP_BASE_HREF, useValue: '/order/' }, 
    { provide: XSRFStrategy, useValue: cookieStrategy }, 
    { provide: RequestOptions, useClass: DefaultRequestOptions } 
], 

export function cookieStrategy() { 
    return new CookieXSRFStrategy('csrftoken', 'X-CSRFToken'); 
} 

gut zusammengestellt, aber gab Laufzeitfehler: als

ERROR TypeError: this._xsrfStrategy.configureRequest is not a function

Ändern useValue in das Problem

providers: [ 
    { provide: APP_BASE_HREF, useValue: '/order/' }, 
    { provide: XSRFStrategy, useFactory: cookieStrategy }, 
    { provide: RequestOptions, useClass: DefaultRequestOptions } 
    ], 
fixiert useFactory bereitzustellen
+1

Dies ist Gold. Sie sollten die Antwort auch akzeptieren. –

Verwandte Themen