【发布时间】:2016-06-22 14:27:51
【问题描述】:
我希望能够在从可滚动的内部 div 滚动时检测事件,而不仅仅是窗口目标。
例如,我有一个监听滚动事件的指令,这里我需要将 'host: '(window:scroll)' 更改为其他内容。
import {Directive, Output, EventEmitter} from '@angular/core';
@Directive({
selector: '[infinite-scroll]',
host: {'(window:scroll)': 'track($event)'},
})
export class InfiniteScrollerDirective {
@Output() scrolled = new EventEmitter();
track(event: Event) {
this.scrolled.emit({
value: event
});
}
}
我在我的组件中使用它作为带有“滚动”输出的无限滚动指令。
<div infinite-scroll (scrolled)="onScroll($event.value)">
<table class="table">
<thead>
</thead>
<tbody>
</tbody>
</table>
</div>...
事件发生在这里。
onScroll(event: UIEvent) {
}
【问题讨论】:
-
那么问题出在哪里?
<div infinite-scroll>不会触发scrolled事件吗? -
这个链接有帮助吗
naive_infinite_scroll/scroll_area.tsgithub.com/angular/angular/blob/… -
问题是滚动事件只在窗口滚动而不是内部 div 滚动时触发。
标签: angular