我使用下面的无限滚动指令:
https://github.com/orizens/angular2-infinite-scroll
但问题是当我在一个页面上使用此指令时,如果我离开该页面,滚动事件仍然会被触发,可能是因为scroller.ts文件中的下面一行:
return this.container.addEventListener('scroll', this.handler.bind(this));
当我们离开页面时,会添加此事件侦听器但不会将其删除。
当我们切换到另一个页面时,有什么线索,如何自动处理它?
要么以声明方式添加事件处理程序
<div class="container" (scroll)="handler($event)"></div>
或者你用
ngOnDestroy() {
this.container.removeEventListener('scroll', this.handler);
}