我是AngularJS的新手,我正在處理一個問題,同時在我的應用程序中實現jQuery custom content scroller。如何在視圖更改時從AngularJS調用JQuery函數
我需要更新滾動條,當我用Angular更新內容時,爲此滾動條有一個update
方法。我的問題是,我不知道在哪裏叫它。對於內容的標記如下:
<div class="scroll-list nice-scrollbars">
<ul class="gallery clearfix">
<li class="extra-alt" ng-repeat="item in relatedItems.data">
...
</li>
</ul>
</div>
我試圖打電話給在角的$http.post
的成功分支的更新方法:
$scope.relatedItems = $http.post($scope.url, {
'filterType': 'related', 'film': id
}).success(function() {
$(".nice-scrollbars").mCustomScrollbar('update');
});
這沒有工作,我認爲這是因爲當成功的方法被調用,視圖內容還沒有更新(我可以看到它使用alert
函數,數據在關閉對話框後出現)
我能夠使滾動條工作的唯一方法是使用滾動條ADVAN觀看的內容的變化(這是傳遞到滾動條的選項),CED屬性:
var scrollbarOpts = {
scrollButtons:{
enable:true
},
advanced:{
updateOnContentResize: true
//@TODO: get rid of this, correctly find where to call update method
}
}
這是不好的做法,因爲這樣的選擇降低了整個腳本的性能。 我想知道,根據需要在哪裏調用jQuery方法來更新DOM所需的正確位置,或者如何通過這種綁定來查看在AngularJS中正確執行的更改?
謝謝。第一個例子已經足夠了,雖然做了一些小改動 - 不知怎的,jQuery選擇器不起作用,但我使用了指令中的'element' var,並且它正在工作。乾杯! –
我試過這個,無法讓它工作。我不得不使用一個計時器。 – Ztyx
這對我也不起作用:/ – electricfeel1979