Wir arbeiten hier an ziemlich großen App in TypScript und Angular 2 geschrieben und ich habe ein großes Problem zu verstehen, wie zu Verwenden Sie Angular 2 Injector in einer benutzerdefinierten Weise. Eigentlich bin ich mir nicht sicher ob ich versuche etwas zu tun, was nicht vom Framework beabsichtigt ist, aber bis jetzt habe ich nur schlechte Lösungen gefunden, was ich versuche zu tun ...Angular 2 - wie Abhängigkeiten zu benutzerdefinierten Klasse zu injizieren, die keine Komponente und nicht als Service verfügbar ist
Also, was ich versuche zu erreichen besteht darin, Werte aus Injector auf Klassen anzuwenden, die nicht das Verhalten von @Component enthalten und nicht Injektoren als Dienste ausgesetzt sind, die globalen Injektoren oder Injektoren auf Komponentenebene zugeordnet sind. (Ich glaube, ich verstehe ganz gut, wie man Zeug in diese beiden Bereiche injiziert und das funktioniert ganz gut).
Was ich versuche, ist so etwas wie diese:
export class SomeCustomClass {
constructor(injection:InjectionToken) {
console.log('injection', injection);
}
}
Und ich weiß, dass wenn ich diese Klasse hinzufügen würde innerhalb Bootstrap oder als Teil zum Injektor wenn @component Dekorateur, die schön funktionieren würde, . Das Problem ist, dass es nicht das ist, was ich vorhabe.
Was ich brauche, ist so etwas wie:
factory.createInstanceWithInjectionApplied(SomeCustomClass);
Ich konnte tatsächlich mit einfachen leben:
var instance:SomeCustomClass = new SomeCustomClass();
Aber das ist nicht realistisch zu sein scheint.
Oh, und ja, ich habe schon alles ausprobiert - @Injectable() tue nichts auf solchen Instanzen, Injector.createAndResolve scheint auch nicht zu funktionieren und hält eine Art statische Eigenschaft mit Zugriff auf Anwendung Injector scheint auch keine gute Idee.
Vielen Dank im Voraus!
Haben Sie schon gefunden, eine Lösung? – Matey