web-dev-qa-db-ja.com

Angular 8アプリでjQueryを使用するにはどうすればよいですか?

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"
]
7

したがって、少し問題から離れ、robertsの回答を使用してjQueryがapp.module.tsで機能していることを確認した後(インポートの途中でconsole.logが機能することを知りませんでした)、前回v4をv7にアップグレードしたときに、この問題に対処しました。

起こったのは、依存関係がjQueryの再読み込みを引き起こしていたことです。 signalR通信を開始するアプリのセクションは、jQueryがまだコンポーネントにロードされていないため、console.log($)に何も表示させない別の依存関係(telerik-angular-report-viewer)もロードします。

修正:

次のコードを削除します

window.jQuery = jQuery;
window.$ = jQuery;

次のファイルから

  • dependency\telerikReportViewer.kendo.min.js
  • dependency\telerikReportViewer.js
  • cjs\telerik-report-viewer.component.js
  • es\telerik-report-viewer.component.js
0