我正在制作一个拖放应用程序,并且我创建了一个可观察到鼠标位置的可观察对象,它重新定位了我的drag-object
.
mouseMove$: any;
constructor(){
this.mouseMove$ = Observable.fromEvent(document, 'mousemove')
.do((mouseevent: MouseEvent) => {
if (document.getElementById("drag-object")){
document.getElementById("drag-object").style.left = (mouseevent.clientX) + 'px';
document.getElementById("drag-object").style.top = (mouseevent.clientY) + 'px';
}
});
有了这个实现,我以这种方式订阅没有问题:
this.mouseMove$.subscribe();
但是我似乎无法取消订阅:
this.mouseMove$.unsubscribe();
或者
this.mouseMove$.dispose();
在任何一种情况下,我都会收到以下类型的错误:
TypeError: this.mouseMove$.unsubscribe 不是一个函数...
我不确定这是否与 的mouseMove$
类型有关any
,但是将类型设置为Observable
并且Observable<MouseEvent>
不起作用。我在这里不明白什么?