Как создать глобальную функцию / переменную (в окне) в Angular для взаимодействия пользователя с инструментами разработчика / консолью браузера? - PullRequest
0 голосов
/ 08 мая 2020

Я знаю, что есть подходящие подходы для определения глобальных переменных / функций , но у меня есть один - ИМХО действительный - вариант использования (возможно, единственный допустимый для этого ?) для «реальной» глобальной переменной непосредственно на JS window объект Angular?

Вариант использования

Пример пользовательская история: Я, как опытный пользователь, хочу раскрыть переменные и функции в моем пространстве имен window или document или около того, я могу повозиться с приложением в глубине (если я знаю, что они делают ™) для вызова функций, запускающих события в приложении Angular.

Например, я могу предоставить функцию reloadThatExampleData для перезагрузки некоторых данных, которые отображаются, или sendServerMessage, чтобы иметь удобную функцию для отправки тестовых данных с сервера.

Я знаю, что могу добавить кнопки в пользовательский интерфейс для этого, но я не хочу этого, потому что это «расширенные функции», которые должны быть хорошо скрыты (чтобы только «опытные пользователи» могли это обнаружить). Очевидным примером может быть, например, читов в игре. Консоль браузера очень хорошо подходит для этого, она по умолчанию скрыта, не требует специальной реализации (мне не нужно создавать еще один GUI для этого), но опытным пользователям все еще достаточно легко обнаружить.

Вы также можете создать его по-другому: мне нужен WebCli («интерфейс командной строки веб») или пользовательский интерфейс консоли браузера («пользовательский интерфейс консоли браузера»). Обратите внимание, что мой вариант использования также имеет в виду идею «отладки»: мне нужны «перехватчики» в моем приложении (например, для отправки сообщения et c вручную), поэтому я могу вручную запустить что-то, чтобы проверить, работает ли это, без необходимость (пере) писать дополнительные (отладочные) функции или около того. Консоль также идеально подходит для этого, так как должно быть достаточно легко экспортировать функцию (вместо написания пользовательского интерфейса ... и у нее есть автозаполнение и другие приятные вещи, уже встроенные в большинство браузеров). Эта функция также полезна, если вам нужно продемонстрировать что-то в своем коде (в виде презентации или около того) и вы не можете / не хотите перекомпилировать все заново.

Технически

Функции должны быть может быть просто из службы, например, из компонента, если на то пошло. Это может быть нормально, если нам понадобится центральная служба для этого, но было бы более элегантно иметь возможность делать это везде. (возможно, даже с аннотацией типа «ExportFunctionAsConsoleCheat» или около того)

Я нашел [этот вопрос о том, как объявить некоторые переменные , хотя этого все еще недостаточно для запуска функций.

...