【发布时间】:2019-01-04 09:05:20
【问题描述】:
问题:当用户将带有 RxJs 的 DOM 元素悬停在 Angular 5 上时,寻找一种获得常规事件发射(例如每 200 毫秒)的方法。
实际上,通过简单的 JS、angular 或 RxJs 使用 mouseover 不会产生常规事件,并且行为与浏览器不同。使用debounce 对事件发射没有帮助。
所以,我想改为使用 mouseenter 和 mouseleave 事件以及它们之间的计时器。但我不知道如何从事件中启动和停止计时器。
类似于this solution in JQuery,但带有可观察对象。
一个(坏的)代码胜过 1000 字:
// RxJs syntax in typescript for angular
const enter = fromEvent(nativeElement, "mouseenter");
const leave = fromEvent(nativeElement, "mouseleave");
// Bad code, just an idea
enter.pipe(
merge(interval(200 /* ms */)),
takeUntil(leave)
).subscribe(event => console.log("hovering", event));
您知道是否可以在每个mouseenter 之后开始间隔发射?
对于库,我在 typescript 2.5 上使用 RxJs 5 和 Angular 5。
【问题讨论】:
标签: angular rxjs observable rxjs5 angular2-observables