Angular 2 angular-cli AOT deklarieren abstrakte Klasse im Modul?

9

Ich versuche AOT Compilation Setup mit angular-cli zu bekommen. Ich habe eine Direktive, die von einer abstrakten Klasse erbt, und ich bekomme einen Fehler während der Kompilierung, dass angular nicht bestimmen kann, zu welchem ​​Modul die abstrakte Klasse gehört. Ich kann es nicht zum Deklarations-Array des NgModules hinzufügen, also was ist der richtige Weg? Meine Code-Struktur sieht so aus,

%Vor%

Fehler sieht so aus

%Vor%

Mein AppModul:

%Vor%

Ok nach dem Debuggen, wenn ich es nicht abstrakt mache und es den Deklarationen hinzufüge, funktioniert es. Bedeutet das, dass ich eine Klasse nicht als abstrakt markieren kann? Das scheint nicht richtig zu sein ...

    
Steveadoo 16.01.2017, 20:10
quelle

2 Antworten

3

Entfernen Sie den @ Component-Dekorator aus der abstrakten Klasse.

    
Velter 09.05.2017 13:03
quelle
0

Ja. Es ist wahr, dass wenn Sie eine abstrakte Klasse erstellen und versuchen, sie als einen Direktiven-Controller zu verwenden, wird es nicht funktionieren. Der Grund dafür ist hier im Dokumentation

Hervorgehobener Teil der Dokumentation wie folgt:

Wenn Sie eine Direktive erstellen, erstellt das Angular eine neue Instanz der Controller-Klasse der Direktive . Wenn Sie eine abstrakte Klasse verwenden, können Sie keine Instanz dafür haben, und daher schlägt sie in Ihrem Fall fehl

    
Aravind 16.01.2017 21:09
quelle

Tags und Links