最近、Angular 4をいくつかのプロジェクトで取り上げたいと考えています(私はまだ多くの基本を学んでいるので、私の質問ははっきりと分かるかもしれません)。過去に私はDOM操作のほとんどのためにjQueryを使用していましたが、Angularを使用すると、Angularアプリケーション内でjQueryを使用すると非常に面倒な変更があります。jQueryとAngular4を混在させる方法が異なります
Angularプロジェクト内でjQueryを使用することに関する多くのStack Overflow投稿を読んだことがありますが、それらはすべてコンポーネントのtypescriptファイルからjQuery関数を書くことをお勧めします。 Angularはコンポーネントに基づいているため、これは意味があります。私の唯一の質問/懸念事項は、コンポーネント自体の外部でグローバルレベルのjQuery関数を作成する方法です。
たとえば、以前はjQuery関数を保持し、それらをhtmlファイル内で参照するjsファイルを作成しました。この例は、画像の視差関数です。別の視差画像に少し異なるスタイルを追加したいのであれば、私はこれをうまくやってjQueryを仕事に使うことができますが、今は例として、同じjQueryコードを使用する2つの異なる視差コンポーネントがあります。 )方法は、jQueryコードを保持するグローバルなjsファイルを介して、異なるコンポーネント内から同じ関数を参照する方法ですか?
私は、関数を保持するファイル "xxxx.js"を作成し、それをindex.htmlファイルで参照させることができます。私は、私が記述したようなものが可能かどうか、そしてもしそうなら、最良のアプローチは何かを知りたいだけです。私は多分、依存性注入を使用することになり
ああ、問題の半分を解決します。しかし今、例として、ウィンドウのサイズ変更などの特定のイベントで発生する関数があるとします。彼らのイベントのインラインで単に発砲するので私の機能のほとんどは名前をつけられません。 $(window).on( "resize"、function(){....})のようなものです。あなたが提供したアプローチはまだこのようなもので動作しますか?コンポーネントの中で宣言する特定の機能がないため、ウィンドウのサイズ変更での起動はありません。私のParallaxの例では、ウィンドウスクロールで起動します。 –
私はそれについてはよく分かりませんが、それを試してみて、それがうまくいくかどうか確認してください。何も宣言しないでください。ステップ1と2を行い、イベントがあなたの関数をトリガするかどうかを見てください。 名前付き関数を使うことを提案していますが、これはコードを読みやすく保守しやすくし、typescriptの原則に合っています –
これは何を悪くしようとしているのでしょうか... jQueryのjsファイルをHTMLファイルAngularが構築しているのは、それ自体のファイルのjQueryがあたかも標準のHTMLファイルであるかのように動作すると私は推測します。 –