angular - 从 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 完成后加载。
解决方案
正如我在编辑中所写的那样,实际问题在其他地方,对我来说令人满意的解决方案是将脚本加载到“父”组件中。
推荐阅读
- python - 如果第一行为 0,则从 DataFrame 中选择列
- java - 我收到以下错误“不再支持源选项 5。使用 7 或更高版本”
- python - 在重复的函数调用中返回绘图而不在笔记本中绘图
- python - 使用 beautifulsoup 从运动参考中解析数据
- java - WPF 中的 Java 可观察对象?
- javascript - 重新加载禁用工具提示
- r - 我创建了图表,显示该曲线的形状如何随着处理时间 (h) 和攻击率 (a) 的变化而变化,但看起来并不正确
- android - Gradle 同步意外失败
- android - Hilt 依赖注入错误找不到符号
- mongodb - 在 $project 聚合管道 MongoDB 中的 $nin