【发布时间】:2018-04-11 03:00:22
【问题描述】:
Aurelia(确切地说是aurelia-dependency-injection)是否支持向数组注入多个成员(如multi inject feature of InversifyJS)?
例子:
provider-common.ts:
class A { ... }
provider1.ts
let a1 = new A (...)
container.registerInstance(A, a1)
provider2.ts
let a2 = new A (...)
container.registerInstance(A, a2)
consumer.ts
@inject(A)
class B {
constructor (multipleAInstancesFromDiffirentProviders :Array<A>) {
// I would expect multipleAInstancesFromDiffirentProviders to contain [a1,a2] (if such a feature is supported)
}
}
【问题讨论】:
-
很高兴了解为什么这个问题被否决了。
-
你能写一个你想做的例子吗?
-
当然是@FabioLuz。
-
我认为这是可能的,但我还不知道该怎么做。我将查看源代码并尝试找到一些方法来做到这一点。同时,您可以将数组封装在一个类中,然后注入该类以获取值
-
@FabioLuz 感谢您关注这个问题。封装在这里无济于事。假设 a1 和 a2 是复杂的配置对象。 B 类的构造函数基于它进行一些初始化。如果数组被封装在一个类中(具有方法 addConfigurationObject(config:A)),我们不能保证在调用 A 的构造函数之前添加所有配置对象。可以使用部分配置调用它,例如 {configurationObjects:[a2]}。
标签: javascript dependency-injection aurelia