私はAngularJSを使い慣れていません。アプリケーションにjQuery custom content scrollerを実装する際に問題を処理しています。ビューが変更されたときにAngularJSからJQuery関数を呼び出す方法
私は角を使ってコンテンツを更新するときにスクロールバーを更新する必要があります。スクロール側にはupdate
メソッドがあります。私の問題は、私はそれをどこに呼び出すべきかわからないということです。私は角度の$http.post
の成功ブランチの更新メソッドを呼び出ししようとしていた
<div class="scroll-list nice-scrollbars">
<ul class="gallery clearfix">
<li class="extra-alt" ng-repeat="item in relatedItems.data">
...
</li>
</ul>
</div>
:コンテンツのマークアップは以下の通りである
$scope.relatedItems = $http.post($scope.url, {
'filterType': 'related', 'film': id
}).success(function() {
$(".nice-scrollbars").mCustomScrollbar('update');
});
これは動作しませんでしたが、私はそれがだと思うとき理由成功メソッドが呼び出され、ビューの内容はまだ更新されていません(alert
関数を使用して表示され、ダイアログボックスを閉じた後にデータが表示されます)
スクロールバーを使用できる唯一の方法は、アドバンコンテンツの変化を見るためCEDプロパティ(これらはスクロールバーに渡されるオプションです):
var scrollbarOpts = {
scrollButtons:{
enable:true
},
advanced:{
updateOnContentResize: true
//@TODO: get rid of this, correctly find where to call update method
}
}
これは、このオプションは、スクリプト全体のパフォーマンスを低下させるので、悪い習慣です。 私は、必要に応じてDOMを更新するために必要なjQueryメソッドを呼び出す正しい場所はどこですか、あるいはそのようなバインディングがAngularJSで正しく行われた変更を表示する方法を知っていますか?
ありがとうございました。最初の例では十分でしたが、小さな変更はありましたが、何とかjQueryセレクターが動作していませんでしたが、ディレクティブの 'element' varを使用していました。乾杯! –
私はこれを試して、動作させることができませんでした。私はタイマーを使わなければならなかった。 – Ztyx
これは私にとってもうまくいかない:/ – electricfeel1979