我有一个利用 SignalR 与桌面应用程序通信的应用程序。要利用 SignalR,我需要在我的 .ts 文件中使用 jQuery。但是,从 Angular 7 迁移到 Angular 8 后似乎不起作用。
我使用 declare var $: any;
就像我在以前版本的 Angular 中一样。不幸的是,$ 现在向控制台打印空白。
那么,Angular v8 是否不再支持以这种方式使用 jQuery,或者在迁移过程中是否存在其他问题?
更新:
我通过 npm 加载了 jQuery v3.3.1。
这使它成为全球性的(在 angular.json 中)
"scripts": [
"./node_modules/jquery/dist/jquery.min.js",
"./node_modules/signalr/jquery.signalR.js"
]
原文由 Irrelevant_Coder 发布,翻译遵循 CC BY-SA 4.0 许可协议
所以,在稍微离开这个问题并使用 roberts answer 确认 jQuery 在 app.module.ts 中工作之后(我不知道 console.log 会在导入过程中工作),我意识到我有上次我将 v4 升级到 v7 时解决了这个问题。
发生了什么,是一个依赖导致 jQuery 被重新加载。启动 signalR 通信的应用程序部分还加载了另一个依赖项 (telerik-angular-report-viewer),这导致 console.log($) 不显示任何内容,因为 jQuery 尚未加载到组件中。
修复:
删除以下代码
来自以下文件