簡體   English   中英

Aurelia是否支持注入多個成員以進行陣列

[英]Does Aurelia support injection of multiple members to array

Aurelia(確切地說是aurelia-dependency-injection )是否支持將多個成員注入到數組中(例如InversifyJS的multiject特性 )?

例:

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)

消費者

@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 {inject, All} from "aurelia-framework";

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

最好是使用All.of(A)

您還可以使用以下替代方法:

import { Container } from 'aurelia-framework';

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM