アニメーション効果(角度のビルトインngShow/ngHideなどは機能的ですが、きれいではありません)にjQueryを使用するカスタムディレクティブがいくつかあります。私は、$(SELECTOR)
の代わりに、角度に独自のDOMセレクタ(angular.export()
やangular.select()
など)があることをドキュメントのどこかで覚えていると思います。しかし、私は今それを見つけることができません。AngularJS DOMセレクタ
私はこのような何かをやっている:
//view
<div scroll-to="element"> //`element` is set via ng-click
…
</div>
//directive
link: function(scope, elm, attrs)
{
scope.$watch(attrs.scrollTo, function scrollToAction(newValue,oldValue)
{
if (newValue !== oldValue)
{
elm.animate({
scrollTop:
$('#'+newValue).offset().top //replace jquery selector with angular's
- elm.offset().top
+ elm.scrollTop()
});
}
});
}
私は本当に、$('#'+newValue)
を操作するだけで、それについての情報を取得するので、私は、私は角度に対する犯罪を犯してるとは思わないではありませんよ。 (angular.elementページで定義)
+1私は、OPが要素を選択できる角度のある方法を見ていると感じる理由を説明するかもしれない追加情報も追加しました。 –
ああ、ありがとうございました。私は角度の前にjqueryを含んでいますので、 'angular.element()'はなお好ましいですか?エイリアスを解決する余分のオーバーヘッドが追加されるようです。 – jacob
@jacob、私は 'angular.element()'を使用して、将来あなたのコードがjQueryを必要としなくなったら、それを更新する必要はないでしょう。 –