3

JQuery が存在するかどうかを検出しようとするプラグインや、$. Angular の JQLite を角度のあるアプリの外で利用できるようにすることは可能でしょうか? JQLite が利用可能かどうかを確認する最初の試みはうまくいきませんでした。基本的に、これらのjqueryプラグイン/コードを機能させるのに十分な機能が含まれているかどうかを確認するために、変数$またはjQueryどこでも(または少なくとも私のng-app領域内で)利用できるようにしたいと考えています。

ソースはこちらhttps://github.com/angular/angular.js/blob/master/src/jqLit​​e.js

4

1 に答える 1

7

実際にはできますが、ほぼ間違いなく役に立ちません。

それを「エクスポート」したい場合は、Angular JavaScript がロードされた後にこれを追加するだけです:

window.jQuery = window.$ = angular.element;

$()orを呼び出すと、jQuery()が実行されますjqLite動作しない可能性が最も高い理由は次のとおりです。jqLiteセレクターをサポートしていないため、実行できないことを意味します

angular.element('.foo').html();

Selectors not implementedというエラーが表示されます。

これは、要素で直接使用すると機能することを示すjsFiddle ですが、セレクターでは失敗します。


編集

以下の Yashua の提案に基づいて、彼のトリックを使用して selectors を有効にする更新を次に示します。jqLit​​e が十分であれば、これは素晴らしいトリック/ハックです。


個人的には、jQuery だけを含めることに同意しません。依存する別の大きなライブラリであり、2、3 のワンライナーしか実行していない場合は、適切なディレクティブを使用して直接 Angular に統合できるはずです。時間をかけて、既存のコードを書き直せるかどうかを確認します。

于 2013-08-12T01:53:07.003 に答える