我是 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>
我试图在 Angular 的成功分支中调用更新方法$http.post
:
$scope.relatedItems = $http.post($scope.url, {
'filterType': 'related', 'film': id
}).success(function() {
$(".nice-scrollbars").mCustomScrollbar('update');
});
这不起作用,我认为是因为调用成功方法时,视图内容尚未更新(我可以使用alert
函数看到它,关闭对话框后出现数据)
我能够使滚动条工作的唯一方法是使用滚动条的高级属性来观察内容的变化(这些是传递给滚动条的选项):
var scrollbarOpts = {
scrollButtons:{
enable:true
},
advanced:{
updateOnContentResize: true
//@TODO: get rid of this, correctly find where to call update method
}
}
这是不好的做法,因为此选项会降低整个脚本的性能。 我想知道,调用 jQuery 方法根据需要更新 DOM 所需的正确位置在哪里,或者这种绑定如何在 AngularJS 中正确完成查看更改?