Ich habe eine Klasse, die als Modell für einige Daten dient, die ich von einem Server bekomme. Diese Daten beginnen als ein unhandliches XML-Objekt, in dem Textknoten Attribute haben, so dass das Json-Format, in das ich es umwandle, keine einfachen Zeichenfolgenwerte hat. Stattdessen habe ich:Bereitstellung neuer Instanzen der Modellklasse für die Abhängigkeitsinjektion in Angular 2
@Injectable()
export class FooString {
_attr: string;
value: string;
isReadOnly(): boolean {
return this._attr && this._attr === 'ReadOnly';
}
isHidden(): boolean {
return this._attr && this._attr === 'Hid';
}
}
Dann ist mein Modell wie ist:
@Injectable()
export class Payment {
constructor(
public FooId: FooString,
public FooStat: FooString,
public FooName: FooString) { }
}
Alles endet mit der gleichen Instanz von FooString auf. Wie bekomme ich diskrete Instanzen für jeden von ihnen?
ich eine Fabrik versucht, aber es immer noch schafft nur eine einzige Instanz:
export let fooStringProvider = provide(FooString, {
useFactory:(): FooString => {
console.log('in foostring factory');
return new FooString();
}
});
Danke. Ich werde das machen. Ich verstehe nicht, wann ich 'new' verwenden soll und wann ich Angulars DI benutzen soll. Kannst du mich aufklären oder in die richtige Richtung weisen? Das Beispiel, das ich oben angegeben habe, ist eines der einfachen Objekte, aber ich habe andere, die mehrere komplexe Datenstrukturen enthalten. Die Art, in der es aussieht wie das Angular.io-Beispiel eines Autos mit einem Motor, Reifen usw. An der Oberfläche sieht es so aus, als ob DI gut dafür wäre, aber ich kann nur eine Instanz haben? – Andrew
Ich habe meine Antwort aktualisiert. –