Angular useValue和注入令牌

时间:2018-10-19 23:40:24

标签: angular dependency-injection

在我的角度应用程序中,我有

{ provide: QUEUE, useValue: window.events }

在我的提供者中。我想知道如果window.events未定义,如何将QUEUE设置为使用空数组[]。我尝试了类似的方法,但是没有用。

  { provide: QUEUE, useValue: window.events || [] }

这就是我在QUEUE.injection-token.ts中所拥有的

import { InjectionToken } from '@angular/core';

export const \QUEUE = new InjectionToken<Array<AppEvent>>('QUEUE');

谢谢!

1 个答案:

答案 0 :(得分:1)

window.events || []检查应在运行时执行,因为window doesn't exist at compilation time

可能应该是:

export function queueFactory(): any[] {
    return window.events || [];
}

...
providers: [ provide: QUEUE, useFactory: queueFactory }]
...