我有一个相当大的Angular2应用程序,其中包含智能和愚蠢的组件,其中所有智能组件都连接到消息传递总线:
class SomeSmartComponent {
constructor(private messageBuss: MessageBuss) {}
}
这是非常重复的,我更愿意:
class SomeSmartComponent extends SmartComponent {
constructor()
}
IE中。将公共依赖项移动到父类。我尝试过以下方法:
class SmartComponent {
protected messageBuss: MessageBuss
constructor() {
let injector: Injector = Injector.resolveAndCreate([MessageBuss])
this.messageBuss = injector.get(MessageBuss)
}
}
问题是创建一个新的Injector和一个新的MessageBuss,我需要由根注入器创建并注入服务层的相同MessageBuss。
换句话说,我需要访问由根注入器创建的单件MessageBuss,而不必在构造函数中设置它。任何帮助将不胜感激。
答案 0 :(得分:0)
您至少需要注入Injector
class SmartComponent {
protected messageBuss: MessageBuss
constructor(injector:Injector) {
this.messageBuss = injector.get(MessageBuss)
}
}
class SomeSmartComponent extends SmartComponent {
constructor(injector:Injector) {
super.injector;
}
}