【问题标题】:Dynamically add javascript functions to an Angular project将 javascript 函数动态添加到 Angular 项目中
【发布时间】:2018-04-26 15:17:05
【问题描述】:

假设我有一个 Angular 服务,该服务调用一个 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() 函数。

【问题讨论】:

  • 你问的是 DI 和返回函数
  • @TKoL 很好的发现。不知道是否重复,因为上面不清楚是否添加了我们正在谈论的运行时包。
  • @rekotc 可能更清楚。
  • 这个问题很清楚。可以在运行时通过 Angular 调用 jar 文件或任何从服务器调用的脚本吗?应该是,但如何?

标签: javascript angular typescript


【解决方案1】:

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

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

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

2) Angular 应用程序订阅并等待 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()");

希望对你有帮助!谢谢大家

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    • 2021-10-31
    • 2011-11-15
    • 2012-08-27
    相关资源
    最近更新 更多