У нас есть требование, чтобы мы хотели разработать "мини" среду тестирования для использования в нашем приложении Angular. Суть платформы заключается в том, чтобы иметь возможность манипулировать вызовами API для изменения тела ответа и кода состояния, чтобы отключить различные обработчики ошибок в нашем приложении и убедиться, что приложение правильно реагирует на вызовы API с ошибками.
Для этого я изучал, как звонить в Angular службы извне Angular. В этой статье описывается, как можно создать службу, а затем запустить ее извне Angular, вызвав функцию window.fireAngularEvent('sampleEventName', args)
.
Однако, когда я пытался сделать это через браузер, я получаю следующее: Uncaught TypeError: window.fireAngularEvent is not a function
Вот мой Angular сервис
export class GlobalApiTestingFrameworkService {
constructor() {
window['fireAngularEvent'] = (eventName, args) => {
console.log('fireAngularEvent : ' + eventName + ' : ' + args);
}
}
}
Что мне делать нужно сделать, чтобы иметь возможность вызывать функцию window.fireAngularEvent? Нужно ли определять его вне Angular в его собственном файле JS? Если да, что именно я включаю в тело функции, чтобы оно могло взаимодействовать со службой? Статья, на которую я ссылаюсь, не очень ясна.