我有一个利用SignalR与桌面应用程序通信的应用程序。要使用SignalR,我需要在.ts文件中使用jQuery。但是,从Angular 7迁移到Angular 8后,它似乎不起作用。
我declare var $: any;像以前的Angular版本一样使用。不幸的是,$现在向控制台输出空白。
declare var $: any;
那么,Angular v8不再支持这种方式使用jQuery,还是在迁移过程中出现其他问题?
更新:
我有通过npm加载的jQuery v3.3.1。
这使其成为全局(在angular.json中)
"scripts": [ "./node_modules/jquery/dist/jquery.min.js", "./node_modules/signalr/jquery.signalR.js" ]
因此,在稍微脱离问题并使用roberts回答确认jQuery在app.module.ts中正常工作后(我不知道console.log在导入过程中可以正常工作),我意识到我已经我上次将v4升级到v7时曾遇到此问题。
发生的事情是一个依赖关系导致jQuery重新加载。应用程序的启动signalR通信的部分还加载了另一个依赖项(telerik-angular-report- viewer),这导致console.log($)不显示任何内容,因为尚未将jQuery加载到组件中。
解决方法:
删除以下代码
window.jQuery = jQuery; window.$ = jQuery;
从以下文件