Angular. Подключение внешних библиотек

Внедрение библиотеки через механизм внедрения зависимостей позволяет сделать нормальные тесты на компонент.

  1. Подключение
  2. Объявление
declare const gapi: GoogleApi;

export const GOOGLE_API = new InjectionToken('GOOGLE_API', {
  providedIn: 'root',
  factory: () => gapi
});

или

export const GOOGLE_API = new InjectionToken('GOOGLE_API', {
  providedIn: 'root',
  factory: () => window['gapi']
});
  1. Использование
constructor(
   private readonly _changeDetectorRef: ChangeDetectorRef,
   @Inject(GOOGLE_API) private readonly _gapi: GoogleApi,
) {}

Похожие записи

Angular. Can't set breakpoints in VS Code

Вариант решения проблемы, когда не срабатывают точки остановки при разработке Angular приложений в редакторе VS Code
10 апреля 2018 г. в Angular

Об subscribe() vs async

О предпочтительности использования async pipe. При OnPush стратегии не требуется вызывать markForCheck() внутри подписки +решение с несколькими | async pipes развёрнутых в одну переменную (внутри шаблона).

05 января 2019 г. в Angular

Angular Resolver

Resolver гарантированно получает асинхронные данные до создания компонента исходя из параметров маршрута.

TS. Event bus

Создаётся providedIn: 'root' сервис событий. Затем отправляются события на шину, и если какой-либо слушатель подписан на эти события, он получает уведомления.