首页 > 解决方案 > 从 Angular 6 组件调用动态加载的 JS

问题描述

以下案例:我有一个在运行时从网络加载的外国 JS:

<script src="https://someapi.com/foreignJS.js" type="text/javascript">

加载后,我需要调用foreignJS.init(). 在一个较旧的项目(创建为 Angular 2 并随后升级到 Angular 6)中,它declare var foreignJS: any在组件和 typings.d.ts 中使用。

然而,在新项目中 - 使用 Angular 6 和 angular-cli 创建 - 没有 typings.d.ts 并且仅在组件中声明就会给我留下foreignJS未定义的错误。我尝试手动创建 typings.d.ts 但这也不起作用。JS 加载正确,在控制台中检查。

所以问题基本上是,如何在 Angular 6 的动态加载脚本上调用 JavaScript 函数。

更新:实际问题当然在其他地方。该脚本在我尝试访问它的时候还没有加载。并且由于某种原因,它仅在 onInit 完成后加载。

标签: angularangular6typescript-typings

解决方案


正如我在编辑中所写的那样,实际问题在其他地方,对我来说令人满意的解决方案是将脚本加载到“父”组件中。


推荐阅读