【发布时间】:2017-05-02 15:28:21
【问题描述】:
我正在制作一个拖放应用程序,并创建了一个可观察到鼠标位置的可观察对象,它重新定位了我的 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 不是函数...
我不确定这是否与any 的mouseMove$ 类型有关,但是将类型设置为Observable 和Observable<MouseEvent> 不起作用。我在这里不明白什么?
【问题讨论】:
标签: angular typescript observable unsubscribe