如何将InjectionToken重用于其他提供程序

时间:2017-06-23 17:34:43

标签: angular dependency-injection

我有一个字符串值,我通过OpaqueToken提供给lib X:

// main.module.ts
providers: [
  { provide: LIB_X_TOKEN, useValue: myValue }
]

现在我有一个需要相同值的lib Y,但是通过不同的令牌和不同的模块,所以我提供它:

// sub.module.ts
providers: [
  { provide: LIB_Y_TOKEN, useValue: myValue }
]

我想重用LIB_X_TOKENsub.module.ts提供的值来减少重复。我试过这样做:

// sub.module.ts
providers: [
  { provide: LIB_Y_TOKEN, value: LIB_X_TOKEN }
]

但是,正如您在this plunker中看到的那样,它没有按预期工作。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

我相信你想为令牌创建一个别名。

{ provide: LIB_Y_TOKEN, useExisting: LIB_X_TOKEN }

useExisting