javascript - 如何使用 RxJs 流式传输 HostListener 事件?

标签 javascript angular rxjs

我找到了大量关于如何绑定(bind) Angular 的资源 HostListeners :

@HostListener('document:click', ['$event'])
handleClick(event: Event) {
     // etc
}

但是我该如何使用 RxJs 来流式传输呢?

documentClickedStream = Observable.fromEvent(/* how to bind this? */)

不确定如何使用 Angular 文档中建议的装饰器模式绑定(bind)以创建“随处点击”流。

最佳答案

我想最简单的方法就是使用一个中介主题:

  @HostListener('document:click', ['$event'])
  onKeyUp(e:Event) {
      this.clickStream$.next(e);
  }

然后像往常一样加入它

  this.clickStream$
      .asObservable()
      .pipe(
          // some operators...
      )
      .subscribe();

关于javascript - 如何使用 RxJs 流式传输 HostListener 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51447527/

相关文章:

javascript - "keydown"如何知道自动将参数传递给函数?

html - Angular 4 - 如何显示继承类组件的模板

rxjs - 将 WithLatestFrom 的值传递给另一个运算符 - Rxjs、Ngrx 效果

angular - 从 ngOnChanges 更改组件输入,同时使用 OnPush 策略

javascript - 从 IPFS 读取 JSON 是不可能的吗?

javascript - 在 Safari 中使用 PHP 清除 Cookie 的行为很奇怪

javascript - 可以下载样式表并将其应用于 Angular ngBindHtml 吗?

javascript - 将从 API 检索的数据存储在另一个 API - Ionic

angular - 更改 Angular 2 的 Material 设计主题

javascript - 无法解决rxjs依赖问题