Динамически добавлять функции JavaScript в проект Angular - PullRequest
0 голосов
/ 26 апреля 2018

Допустим, у меня есть служба angular, эта служба вызывает сервлет, запрашивающий файл library.js, содержащий мои пользовательские функции JavaScript. Есть ли способ, которым я могу динамически добавлять эти функции в мое приложение Angular во время выполнения? Например, в файле library.js у меня может быть следующая пользовательская функция:

helloWorld(){
    alert("hello world");
}

Должно работать следующим образом:

1) Я вызываю сервлет, используя стандартный угловой модуль HttpClient

2) Сервлет отправляет обратно library.js, содержащий список функций, таких как helloWorld ();

3) Угловые веб-приложения загружают файл library.js (как?)

4) Затем я могу вызвать функцию helloWorld () в своем угловом коде.

1 Ответ

0 голосов
/ 27 апреля 2018

Хорошо, мы смогли решить проблему следующим образом:

1) Сервлет отвечает следующим сообщением, теги скрипта ОБЯЗАТЕЛЬНЫ, иначе он не будет распознаваться как действительный код js.

String servletAnswer = "<script type=\"text/javascript\">
function helloWorld(){
    alert("custom message!");
}
</script>"

2) Угловое приложение подписывается и ждет ответа от сервлета обычным способом. Как только я получаю ответ, я делаю:

var script = response;
$('body').append(script);     /* i append the script to body of the document,
                              now the function helloWorld is available to the application */

3) Я вызываю функцию, используя eval:

 eval("helloWorld()");

Надеюсь, это поможет! Спасибо всем

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...