我有以下事项:
<app-scrollable-area (scrolledDown)="..." class="scrollable-y">
<router-outlet></router-outlet>
</app-scrollable-area>
问题是如何告诉内部组件有关此事件? (scrolledDown)
也许我应该实现聚合事件的一般服务?
之前,我使用了局部变量但是当我整合路由时,情况发生了变化。
感谢您的回答!
答案 0 :(得分:1)
您可以使用滚动服务:
export class ScrollService {
subject: Subject;
constructor() {
this.subject = new Subject();
}
setScroll(newY: number) {
this.subject.next(number);
}
registerScroll(): Observable<number> {
return this.subject.asObservable();
}
}
您需要在任何需要的地方注入此服务。
通过setScroll()
,您可以向所有订阅者发送新滚动条。
每个消费者都可以订阅registerScroll()
并在发出时工作。