假设我像official example一样在InversifyJS中使用多次注入:
container.bind<Ninja>("Ninja").to(Ninja);
container.bind<Weapon>("Weapon").to(Katana);
container.bind<Weapon>("Weapon").to(Shuriken);
是否可以从绑定的混凝土中注入特定的混凝土? 例如。我想明确地注入片假名,我该怎么做?我不想使用多次注入并遍历/访问数组。 就我而言,我需要在一个地方进行多次注射,而在另一处进行一次注射。
这不起作用,因为它给出了模棱两可的定义错误:
@inject("Weapon") private weapon: Katana
答案 0 :(得分:0)
签出named bindings。 或tagged bindings。还有default targets。
container.bind<Weapon>("Weapon").to(Katana).whenTargetNamed("strong");
container.bind<Weapon>("Weapon").to(Shuriken).whenTargetNamed("weak");
@inject("Weapon") @named("strong") katana: Weapon,
@inject("Weapon") @named("weak") shuriken: Weapon