Angular2 UpgradeComponent fehlender $ Injector

9

Ich versuche, eine Angular1-Komponente zu aktualisieren und sie in meiner Angular2-App zu verwenden, indem ich die offizielle Angular2-Dokumentation befolge hier unter "Verwenden von Angular 1 Component-Direktiven von Angular 2 Code", aber es gibt den folgenden Fehler:

%Vor%

Bei näherer Betrachtung in Zeile 97 ist dieser $ Inspector nicht definiert:

Mein Code ist sehr einfach:

%Vor%

Meine main.ts für Bootstrapping ist:

%Vor%

Hier ist die vereinfachte Version des Problems mit minimalen Reproduktionsschritten: Ссылка

Es wird von angular-cli

generiert     
Dolan 18.11.2016, 12:12
quelle

3 Antworten

2

Ich hatte ein ähnliches Problem. Um mein Problem zu beheben, habe ich die folgende Zeile aus meiner AppModule -Definition entfernt:

%Vor%

In meinem Fall musste ich auch den AppComponent zu meinem entryComponents Abschnitt hinzufügen:

%Vor%

Sie müssen auch die Methode ngDoBootstrap implementieren, falls Sie noch nicht:

%Vor%     
Brady Isom 18.11.2016, 20:32
quelle
1

Hier ist ein Plünderer eines Arbeitsbeispiels, das ich erstellt habe. Ich hatte das gleiche Problem wie du beschrieben hast. Der Schlüssel für mich war, meine AppComponent herunterzustufen und die heruntergestufte Komponente in die Angular 1 App zu platzieren:

%Vor%

index.html:

%Vor%

Dann musste ich wie oben beschrieben vorgehen und AppComponent zu entryComponents in meinem AppModule verschieben.

%Vor%

In meinem Beispiel befindet sich die herabgestufte Angular 2 AppComponent in der index.html, aber Sie können sie in jede beliebige Angular 1-Vorlage einfügen, wenn dies für Ihre Anwendung sinnvoller ist.

Zypern

    
dmungin 08.02.2017 15:36
quelle
1

Es kann nicht die ng1-Anweisung verwenden, die von UpgradeComponent aktualisiert wurde, wenn Sie ng2 verwenden, um Ihre Anwendung zu starten.

Sie müssen ng1 verwenden, um die Anwendung und die ng2-Komponente zu starten, und dann die ng1-Direktive in der ng2-Komponente verwenden.

Sie müssen den gesamten Inhalt in bootstrap von @NgModule entfernen und AppComponent in entryComponents verschieben und dann in AppModule ngDoBootstrap() leeren:

%Vor%

Danach Downgrade AppComponent:

%Vor%

Und jetzt können Sie eine ng1-Anweisung in der ng2-Komponente aktualisieren.

Weitere Details: Angular2 UpgradeComponent vermisst $ injector

    
LeeGenD 22.02.2017 08:29
quelle

Tags und Links