Aurelia是否支持向数组注入多个成员

Does Aurelia support injection of multiple members to array

Aurelia(确切地说 aurelia-dependency-injection) support injection of multiple members to array (like 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)
  }
}

最好用All.of(A).

您也可以使用此替代方法:

import { Container } from 'aurelia-framework';

@inject(Container)
class B {
    constructor (container: Container) {
      var multipleAInstancesFromDifferentProviders : Array<A> = container.getAll(A);
    }
}

您可以尝试使用 All.of(A):

    import {inject, All} from "aurelia-framework";

    @inject(All.of(A))
    class B {
        constructor (multipleAInstancesFromDiffirentProviders :Array<A>) {
        }
    }