Fla*_*ape 7 javascript rxjs angular
我找到了大量关于如何绑定 Angular HostListeners 的资源:
@HostListener('document:click', ['$event'])
handleClick(event: Event) {
// etc
}
Run Code Online (Sandbox Code Playgroud)
但我该如何使用 RxJs 来传输它呢?
documentClickedStream = Observable.fromEvent(/* how to bind this? */)
Run Code Online (Sandbox Code Playgroud)
不确定如何使用 Angular 文档中建议的装饰器模式绑定以创建“单击任意位置”流。
我想简单的方法就是使用中间主题:
@HostListener('document:click', ['$event'])
onKeyUp(e:Event) {
this.clickStream$.next(e);
}
Run Code Online (Sandbox Code Playgroud)
然后像平常一样sub到它
this.clickStream$
.asObservable()
.pipe(
// some operators...
)
.subscribe();
Run Code Online (Sandbox Code Playgroud)
使用模板引用来获取按钮的引用
它会起作用,因为我们的目标是文档。
@ViewChild('btn') btn:ElementRef;
documentClickedStream = Observable.fromEvent(window['document'],'click');
Run Code Online (Sandbox Code Playgroud)
工作示例: https: //stackblitz.com/edit/rxjs-window
| 归档时间: |
|
| 查看次数: |
5094 次 |
| 最近记录: |