【发布时间】:2017-12-26 11:02:48
【问题描述】:
我想创建一个工厂,它能够创建一个使用依赖注入的类(MyClass,实现一个抽象类)的新实例。
我希望工厂看起来像这样:
工厂
export class Factory {
public static makeMyClass() {
return new MyClass();
}
}
但是,当我采用这种方法时,EventAggregator 并未注入 MyClass。
我该怎么做?
界面
export abstract class MyClassInterface {
abstract connect();
abstract disconnect();
abstract send(message: string);
}
类
@inject(EventAggregator)
export class MyClass {
constructor(EventAggregator) {}
connect() {}
disconnect() {}
send(message: string) {}
}
提前致谢!
【问题讨论】:
-
@inject(NewInstance.of(MyClass))就足够了。如果您真的想使用工厂,则必须将EventAggregator注入工厂,然后将其传递给MyClass实例 ->new MyClass(this.eventAggregator); -
另外,您已将构造函数参数命名为
EventAggregator,这是类名,这可能会导致问题。我建议将其更改为eventAggregator或ea或其他内容。
标签: dependency-injection aurelia aurelia-di