如何通过角度2路由器与组件通信

时间:2017-04-09 15:45:42

标签: angular

我有以下事项:

<app-scrollable-area (scrolledDown)="..." class="scrollable-y">
        <router-outlet></router-outlet>
</app-scrollable-area>

问题是如何告诉内部组件有关此事件? (scrolledDown) 也许我应该实现聚合事件的一般服务?

之前,我使用了局部变量但是当我整合路由时,情况发生了变化。

感谢您的回答!

1 个答案:

答案 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()并在发出时工作。