2016-11-18 3 views
-1

Ich entwickle eine (wirklich) große Angular 2-Anwendung als ein internes Werkzeug für meine Firma. Die Anwendung besteht aus verschiedenen Unteranwendungen, auf die nur bestimmte Benutzer zugreifen können.DI-Fehler in Unterkomponente

Um dies zu tun, habe ich versucht, eine CanActivate-Klasse verwenden eine beobachtbare zurück, Abfrage eines meiner Dienste, um den Zugriff zu überprüfen, aber der Konstruktor für die Klasse wird ungültig, wenn ich versuche, den Dienst zu importieren.

Also habe ich den Test in der Anwendung selbst verschoben, aber es ist auf die gleiche Weise fehlgeschlagen. Es ist also wahrscheinlich, dass das Problem im Service selbst liegt. Das Seltsame ist, dass der App-Container den gleichen Dienst verwendet, ohne Probleme (der Dienst stellt auch die Liste der verfügbaren Anwendungen bereit und generiert das Apps-Menü).

Ich bin mir ziemlich sicher, dass das Problem ist die Ladefolge der Komponenten (und ist wahrscheinlich Http-bezogen), aber ich habe keine Ahnung, wo Sie suchen. Leider ist es für mich aufgrund der Komplexität der Anwendung sehr schwierig, das Problem zu isolieren, und ich weiß nicht, was ich tun soll.

Ich suchte nach ähnlichen Problemen und fand ähnliche Situationen, aber die Angular2-Entwicklung hat sich in der Zwischenzeit weiterentwickelt und diese Lösungen sind nutzlos geworden.

+0

Ohne einen [mcve] und den spezifischen Fehler ist es fast unmöglich zu helfen. – jonrsharpe

+0

hast du '@Injectable()' über deine 'CanActivate' Klasse gelegt? – PierreDuc

+0

@jonrsharpe Sie haben absolut Recht, aber wie gesagt, es ist unmöglich für mich, dieses Verhalten zu isolieren. Die Anwendung ist zu komplex –

Antwort

0

Ich verbrachte den ganzen Tag mit diesem Problem, aber ich fand es heraus .... fast.
Es war nicht DI-bezogen aber etwas falsch mit einem Const-Import (natürlich war der Fehler absolut irreführend), ich habe wirklich keine Ahnung warum. Ich habe es bewegt und jetzt funktioniert es richtig. Danke trotzdem.

Verwandte Themen