私は、jQueryプラグインを私のAngularアプリに統合する正しい方法は何かと思いました。私はいくつかのチュートリアルやスクリーンキャストを見つけましたが、それらは特定のプラグインに対応しているようです。
例: http://amitgharat.wordpress.com/2013/02/03/an-approach-to-use-jquery-plugins-with-angularjs/http://www.youtube.com/watch?v=8ozyXwLzFYs
私はそのようなディレクティブを作成する必要があります -
App.directive('directiveName', function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
$(element).'pluginActivationFunction'(scope.$eval(attrs.directiveName));
}
};
});
そして、HTMLでスクリプトとディレクティブを呼び出す?
<div directiveName ></div>
<script type="text/javascript" src="pluginName.js"></script>
どうもありがとう
はい。それで合っています。 jQueryプラグインを使用している場合は、コードをコントローラに入れないでください。代わりにディレクティブを作成し、通常はディレクティブのlink
関数の中に入れます。
あなたが見てみることができるという文書内のポイントがいくつかあります。あなたはそれらをここで見つけることができます:
よくある落とし穴
ビューでスクリプトを参照しているときは、必ずそれを最後に参照してください。angularjsライブラリ、コントローラ、サービス、およびフィルタが参照された後です。
編集:$(element)
を使うのではなく、jQueryでAngularJSを使うときはangular.element(element)
を使うことができます。
ディレクティブやサービス/工場がうまくいかなかった2つの状況があります。
シナリオは、私がサービスの依存性注入を持つディレクティブを持っていて(持っていた)、そのディレクティブから($ httpで)ajax呼び出しをするようにサービスに依頼することです。
結局、どちらの場合も、配列に初期値を指定してもng-Repeatはまったくファイルされませんでした。
私はコントローラと独立スコープでディレクティブを作ろうとさえしました
私がすべてをコントローラーに移したときだけ、それは魔法のように働いた。