2017-05-08 5 views
1

Der folgende CodeAngular 4 Typoskript Dekorateure ist nicht gültig hier

let isBrowserFactory2=function(@Inject(PLATFORM_ID) platformId: string){ return isPlatformBrowser(platformId);} 

die folgende Fehlermeldung erhält:

Decorators are not valid here 

Und diese

let isBrowserFactory=(@Inject(PLATFORM_ID) platformId: string):boolean=> isPlatformBrowser(platformId) 

Ruft die Expression expected Fehler.

  • Warum kann ich nicht Typoskript Parameter Dekorateure für eine Funktion?
  • Wie kann ich @Inject() verwenden, um etwas in eine Fabrikmethode zu injizieren?

Antwort

1

Verwenden Sie im Konstruktor @Inject.

isBrowserFactory: boolean; 

constructor(@Inject(PLATFORM_ID) platformId string) { 
    this.isBrowserFactory = this.isPlatformBrowser(platformId); 
} 

Auf diese Weise können platformId Injektion PLATFORM_ID deklarieren. Und dann können Sie Ihre Methode isPlatformBrowser aufrufen, die ich glaube, gibt einen boolean zurück.

+0

Grundsätzlich korrekt, aber 'class' Methoden werden unterstützt, nicht nur Konstruktoren. Object Literal prägnante Methoden sind _not_ supported thouigh –

+0

@ AluanHaddad Ich dachte, Sie müssten Dekoratoren vor der Klassendeklaration oder im 'Konstruktor' verwenden. – SrAxi

+0

Dekoratoren sind für Klassenmitglieder, Klassenmemberparameter und Klassen selbst gültig. –

Verwandte Themen