2016-11-02 4 views
1

Nicht sicher, was die beste Option ist, aber hier geht es.Angular 2 - Inject Anbieter in der Klasse (Typoskript)

ich die folgende Klasse haben

export class Order { 
    number?: any; 
    api?: ApiRequest; 
    constructor(number, api: ApiRequest) { 
     this.number = number; 
     this.api = api; 
    } 
} 

Wenn ich den Auftrag i die folgende

let order new Order(123, this.request); 

ApiRequest globaler Anbieter ist eine injizierbare Verwendung erstellen.

Gibt es eine Möglichkeit, den API-Provider automatisch in die Klasse injizieren, wenn ich ein neues Objekt erstellen?

Antwort

1

Nein. Das Injizieren funktioniert nur für Instanzen, die von DI erstellt werden, nicht wenn Sie selbst mit new Xxx() erstellen.

+0

Also was ich verwende ist die einzige Option, die ich habe? – keepwalking

+0

Genau, wenn Sie eine Instanz mit 'new Xxx()' erstellen, haben Sie alles selbst zu übergeben. Sie könnten einen 'Injektor' übergeben und konkrete Abhängigkeiten mit' Ordnung' wie 'Konstruktor (Injektor: Injektor) {this.api = injector.get (ApiRequest); } '. Ich weiß nicht, ob dies eine Verbesserung Ihrer Situation ist. –

+1

Wahrscheinlich ist es, wenn ich mehrere Abhängigkeiten habe. Vielen Dank. – keepwalking

Verwandte Themen