在根模块中为库模块提供依赖关系

时间:2019-03-08 00:17:32

标签: angular service dependency-injection provider

场景:

我要做的就是通过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无法解决该依赖性。太奇怪了。

0 个答案:

没有答案