【发布时间】:2020-04-11 00:00:22
【问题描述】:
我遇到了问题。我有一个无限滚动指令,我在其中监听 scroll 事件。问题是只有当我绑定到$window时才会触发滚动事件:
angular.element($window).bind('scroll', function () {
console.log('Gogo!'); //works!
});
element.bind('scroll', function () {
console.log('Gogo!'); //doesn't work... :(((
});
Directive 在 ng-view 里面我发现了这个问题,看起来和我的问题很相似 - Binding to events in a directive which is inside a ng-view doesn't work
有人知道如何解决这个问题吗?
我的指令:
directives.directive('scrolly', function () {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var raw = element[0];
element.bind('scroll', function () {
if (raw.scrollTop + raw.offsetHeight > raw.scrollHeight) {
scope.$apply(attrs.scrolly);
}
});
}
};
});
我的看法:
<ul class="items-wrap" scrolly="showMore()">
<li class="item" ng-repeat="item in items">{{item.name}}</li>
</ul>
【问题讨论】:
-
请粘贴您的视图和指令代码。
-
@MattWay 添加了代码 sn-ps
标签: javascript angularjs events scroll dom-events