有没有办法捕获在控制器内滚动页面的事件?我在我的组件的控制器$ onInit上有这个:
$scope.$on('scroll', function() {
console.log('Something something');
});
我只看到了在指令上使用.bind()的方法,比如:Scroll event in AngularJS
我一直潜伏着官方指南而我一无所获。
您可以向链接到的指令添加属性,以从控制器接收函数以在滚动发生时调用
.directive("scroll", function () {
return {
restrict: 'A',
scope : {
"onScroll" : "&onScroll"
},
link: function(scope, element, attrs) {
element.bind("wheel", function() {
scope.onScroll();
});
}
}
});
然后在模板中,您将在属性值中传递它
<ul scroll on-scroll="myController.onScroll()">
</ul>
您可以使用angularJS的$element
来正确执行此操作。
angular.element($element).on('scroll', function() {
console.log('Something something');
});
在控制器中,$element
是控制器绑定的DOM中的元素。