Aurelia(确切地说是aurelia-dependency-injection)是否支持将多个成员注入数组(如multi inject feature of InversifyJS)?
示例:
提供商-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)
}
}
答案 0 :(得分:2)
您可以尝试使用All.of(A)
:
import {inject, All} from "aurelia-framework";
@inject(All.of(A))
class B {
constructor (multipleAInstancesFromDiffirentProviders :Array<A>) {
}
}
答案 1 :(得分:1)
最好的方法是使用All.of(A)
。
您也可以使用此选项:
import { Container } from 'aurelia-framework';
@inject(Container)
class B {
constructor (container: Container) {
var multipleAInstancesFromDifferentProviders : Array<A> = container.getAll(A);
}
}