Das Szenario: Ich habe zwei abgeleitete Klassen, die beide die ActionBase-Klasse wie folgt erweitern. Ich möchte DI für beide abgeleiteten Klassen verwenden. Aber beide Klassen haben unterschiedliche Abhängigkeiten. Das sollte möglich sein, oder? Was mache ich falsch? In beiden Fällen sind die injizierten Instanzen/Module "undefiniert". Irgendwelche Hilfe/Hinweis geschätzt.Aurelia: Dep. Injektion auf abgeleitete Klassen nicht möglich? (oder was mache ich falsch ?!)
/*
* Base class for Actions
*/
export class ActionBase {
type;
constructor(type) {
this.type = type;
}
}
/*
* Derived Class: InsertAction
*/
import {inject} from 'aurelia-framework';
import {ActionBase} from './ActionBase';
import {PomManager} from '../manager/PomManager';
@inject(PomManager)
export class InsertAction extends ActionBase {
pomManager;
constructor(pomManager) {
super("insert");
this.pomManager = pomManager;
console.log("[InsertAction:constructor] pomManager: ", this.pomManager); // undefined
}
}
/*
* Derived Class: RenderAction
*/
import {inject} from 'aurelia-framework';
import {ActionBase} from './ActionBase';
import {AnotherManager} from '../manager/AnotherManager';
@inject(AnotherManager)
export class RenderAction extends ActionBase {
anotherManager;
constructor(anotherManager) {
super("render");
this.anotherManager = anotherManager;
console.log("[RenderAction:constructor] anotherManager: ", this.anotherManager); // undefined
}
}
das möglich sein sollte. Sind Sie sicher, dass "./ActionBase" der korrekte Pfad der ActionBase-Klassendatei ist? –
Ja. Dieser Teil funktioniert gut (das obige Snippet ist natürlich nicht in einer einzigen Datei). Methoden werden geerbt und funktionieren wie erwartet ... Es funktioniert nur, wenn ich die Abhängigkeiten auf Basisklassenebene einfüge ... aber nicht alle abgeleiteten Klassen haben die gleichen Abhängigkeiten ... also ist das keine Option. Irgendwelche Ideen? – simonwidjaja