场景:
我要做的就是通过DI将在根应用程序中定义的剑(实现IWeapon)提供给战士组件。其中在库项目中定义了战士组件,并且战士组件接受的参数的类型为IWeapon,该类型也在战士库项目中定义
更新:我可以通过执行以下操作来编译所有内容,但是在浏览器控制台中,它抱怨“找不到用于武器的提供者”:
战士图书馆项目:
export class Weapon {
strike(): Promise<Pain> { return null; }
}
WarriorComponent的构造(私人武器:武器){...
WarriorModule的提供者数组为空。
我构建并打包warrior模块,然后npm将其安装在RootApplication中 根应用程序有 这样的剑服务:
@Injectable()
export class Sword extends Weapon {
strike(): Promise<Pain> {
return "a lot `of pain";
}
}
根应用程序的应用程序模块具有如下定义的提供程序:
providers: [ { provide: Weapon, useClass: Sword } ]
更新:如果我这样修改根app.module的构造函数: 构造函数(私人武器:武器) 如果在该构造函数中设置了一个断点,那么我可以在调试工具中看到武器已被DI成功解决,但是,在武器模块/组件中,DI无法解决该依赖性。太奇怪了。