0
Ich versuche, zwei Singletons zu verwenden und sie in der Lage zu machen, sie zu nennen wie dieseInversify Kreis Singletons Injektion
import 'reflect-metadata';
import { Container, inject, injectable } from 'inversify';
let container = new Container();
@injectable()
class Dom {
private domUi: DomUi;
constructor (domUi: DomUi) {
this.domUi = domUi;
}
}
@injectable()
class DomUi {
private dom: Dom;
constructor (dom: Dom) {
this.dom = dom;
}
}
@injectable()
class Test {
constructor (dom: Dom) {
console.log(dom);
}
}
container.bind<Dom>(Dom).toSelf().inSingletonScope();
container.bind<DomUi>(DomUi).toSelf().inSingletonScope();
const test = container.resolve(Test);
Aber es gibt diesen Fehler
Error: Missing required @inject or @multiInject annotation in: argument 0 in class Dom.
Wie dies behoben werden kann? Ich habe die @inject
und @multiInject
ohne Glück versucht!
Gibt es eine bessere Möglichkeit, dies vom Designmusterstandpunkt aus zu denken?
Danke, Ihr Lösung hat richtig funktioniert! Dies war ein künstliches Beispiel für Reproduzierbarkeit, aber ich werde Symbole in meinem aktuellen Projekt verwenden. – UnLoCo
Ich habe ein Problem auf GitHub erstellt, um diesen Fehler zu verfolgen https://github.com/inversify/InversifyJS/issues/685 –