将JavaScript函数动态添加到Angular项目

时间:2018-04-26 15:17:06

标签: javascript angular typescript

让我们说我有一个角度服务,这个服务调用一个servlet,要求一个包含我的自定义JavaScript函数的library.js文件。 有没有什么办法可以在运行时动态地将这些函数添加到我的Angular应用程序中? 例如,在library.js文件中,我可能有以下自定义函数:

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

它应该如下工作:

1)我使用标准的Angular模块HttpClient

调用servlet

2)servlet发送回library.js,其中包含一系列函数,如helloWorld();

3)angular web应用程序加载library.js文件(如何?)

4)然后我可以在我的角度代码中调用helloWorld()函数。

1 个答案:

答案 0 :(得分:0)

好的,我们能够通过以下方式解决问题:

1)servlet以下面的消息回答,脚本标签是MANDATORY,否则不会被识别为有效的js代码。

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

2)角度应用程序订阅并等待servlet以通常的方式回答。我收到回复后立即:

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()");

我希望它有所帮助!谢谢大家