1

Я использую ниже бесконечную директиву пролистайте:Angular2 Директива Infinite Scroll Выпуск

https://github.com/orizens/angular2-infinite-scroll

Но дело в том, когда я использую эту директиву на одной странице, и если я отойти от этой страницы прокручивается событие все еще стреляли, вероятно, из-под строку в файле scroller.ts:

return this.container.addEventListener('scroll', this.handler.bind(this)); 

Эти добавляется прослушиватель событий, но не удаляется, когда мы отходим от страницы.

Любая подсказка, как обращаться с ней автоматически, когда мы переходим на другую страницу?

ответ

1

Либо добавить обработчик событий декларативно

<div class="container" (scroll)="handler($event)"></div> 

или использовать

ngOnDestroy() { 
    this.container.removeEventListener('scroll', this.handler); 
} 
+0

Большое вам спасибо Гюнтер за ответ. Кажется, что событие ngOnDestroy не запущено, работает ли оно также с директивами? Я использую RC1 –

+0

@NaveedAhmed выполняет ли ваш класс 'OnDestroy'? – drewmoore

+0

Да, импорт {Директива, ElementRef, Input, Output, EventEmitter, OnDestroy} из '@ angular/core'; экспорт класс InfiniteScroll реализует OnDestroy { /// другой код .... ngOnDestroy() { console.log ("ngOnDestroy под названием"); this.container.removeEventListener ('scroll', this.handler); } –