Доступ к глобальной переменной в Angular (`LC_API`)

У меня есть приложение Angular 6 с установленным живым чатом для Angular.

Я пытаюсь использовать Javascript API-библиотеку живого чата, чтобы скрыть плавающую кнопку по умолчанию.

Если я запускаю LC_API.hide_chat_window(); в консоли разработчика браузера, это работает.

Однако, если я добавлю этот код в файл .ts компонента Angular, он не будет работать (поскольку у него есть доступ к глобальной переменной LC_API).

Как я могу получить доступ к этой глобальной переменной?


person nachshon f    schedule 25.01.2019    source источник
comment
Определить не получается. Ошибка переноса или ошибка времени выполнения? Также укажите сообщение об ошибке.   -  person Igor    schedule 25.01.2019
comment
Ошибка просто в том, что LC_API не определено.   -  person nachshon f    schedule 25.01.2019
comment
Вы можете внедрить window в свой компонент, а затем получить доступ к переменной там, как обычно в JS, где находятся глобальные переменные. См. также stackoverflow.com/a/40222547/1260204.   -  person Igor    schedule 25.01.2019
comment
Не берите в голову. Я понял другое. Опубликовать как ответ, чтобы я мог отметить как правильный. Спасибо   -  person nachshon f    schedule 25.01.2019


Ответы (1)


Вы можете внедрить окно в свой компонент, а затем получить доступ к переменной там, как обычно в JS, где находятся глобальные переменные. См. также https://stackoverflow.com/a/40222547/1260204.

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

constructor(@Inject("windowObject") private window: {LC_API:any})
person Igor    schedule 25.01.2019