在 Angular 8 编译脚本(main.js、polyfill.js 等)之后添加脚本

Posted

技术标签:

【中文标题】在 Angular 8 编译脚本(main.js、polyfill.js 等)之后添加脚本【英文标题】:Adding scripts after Angular 8 compiled scripts (main.js, polyfill.js, etc) 【发布时间】:2020-07-03 14:43:46 【问题描述】:

在我们由 Angular 8 构建的主要应用程序脚本之后,我们是否可以加载外部脚本,例如由 3rd 方网站提供的脚本?我们已经尝试将它们放在 index.html 的末尾,但在使用 ng -prod 构建后,它们仍在 main.js、polyfill.js 和其他应用程序脚本之前加载

【问题讨论】:

【参考方案1】:

要在Angular App 完成初始化后加载外部脚本,您可以通过在DOM 中添加<script> 节点来“手动”添加它。

loadScript() 
   const scriptElement = this.document.createElement('script');
   scriptElement.src = 'https://....js';
   scriptElement.type = 'text/javascript';
   const headElements = this.document.getElementsByTagName('head');
   headElements[0].appendChild(scriptElement);

然后您可以在component constructor 或您的app module constructor 中调用此方法:

app.module.ts:

export class AppModule 
  constructor() 
    this.loadScript();
  

  loadScript() 
    ...
  



more details with [this tutorial][1].


  [1]: http://www.lukasjakob.com/how-to-dynamically-load-external-scripts-in-angular/

【讨论】:

您能否将我链接到更多教程以了解更多信息。我不是真正的程序员,但我希望能够解决这个问题,即我们在 main 之前加载其他脚本并滞后于页面的加载。 我已经更新了我的答案。通过搜索“external script angular”,您会找到很多其他资源。 非常感谢!是否可以为这些脚本添加延迟?

以上是关于在 Angular 8 编译脚本(main.js、polyfill.js 等)之后添加脚本的主要内容,如果未能解决你的问题,请参考以下文章

在 angular.js 中的控制器之间共享变量

如何使用 Angular 8/9 隐藏 API 密钥? [复制]

打字稿编译器:找不到名称“地图”

Angular:无法导入 Sequelize

Angular 8 - 未加载运行时编译器错误

Angular 8应用程序编译显示:“错误TS1005:':'预期” [重复]