Угловое использование Значение и токен инъекции - PullRequest
0 голосов
/ 20 октября 2018

В моем угловом приложении у моих провайдеров

{ provide: QUEUE, useValue: window.events }

.Мне было интересно, как я могу установить QUEUE для использования пустого массива [], если window.events не определены.Я попробовал что-то подобное, и это не сработало.

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

Вот что у меня есть в QUEUE.injection-token.ts

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

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

Спасибо!

1 Ответ

0 голосов
/ 20 октября 2018

window.events || [] проверка должна выполняться во время выполнения, поскольку window не существует во время компиляции .

Вероятно, это должно быть:

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

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