Javascript RemoveEventListener未使用typescript在Angular2中工作

Javascript RemoveEventListener未使用typescript在Angular2中工作,javascript,angular,typescript,Javascript,Angular,Typescript,我在Angular2中使用了three.js。代码很简单,如下所示 this.webGLRenderer.domElement.addEventListener('mousedown', ()=>this.onMouseDown(<MouseEvent>event), false); this.webGLRenderer.domElement.removeEventListener('mousedown', ()=>this.onMouseDown(<MouseE

我在Angular2中使用了three.js。代码很简单,如下所示

this.webGLRenderer.domElement.addEventListener('mousedown', ()=>this.onMouseDown(<MouseEvent>event), false);

this.webGLRenderer.domElement.removeEventListener('mousedown', ()=>this.onMouseDown(<MouseEvent>event), false);

不管怎样,我还是在电视上看到了这件事。看起来,addEventListener工作正常,但无法删除它。提前谢谢

要使用RemoveEventListener,函数回调不能是匿名的,因此第二个示例应该可以工作,只要在添加侦听器时也使用this.onMouseDown

要删除事件处理程序,请使用 addEventListener()方法必须是外部函数

尝试:


如何回答这个问题?看完这个打字脚本文件。我理解以()=>开始实际上就像一个匿名函数。所以当我定义方法时。受保护的onMouseMove=(事件:MouseEvent):void=>{//do something}并添加事件this.webGlRenderer.domelement.addEventListener('mousemove',this.onMouseMove,false)。然后删除这个.webGlRenderer.domeElement.removeEventListener('mousemove',this.onMouseMove,false)。哦,我刚刚阅读了你在问题下的评论,似乎你已经得到了答案……感谢你友好地回答这个问题。我是打字新手,我想我应该多读点文档。你的回答是正确的,我就要了。再次感谢!
this.webGLRenderer.domElement.removeEventListener('mousedown', this.onMouseDown, false);
this.webGLRenderer.domElement.addEventListener('mousedown', this.onMouseDown, false);
this.webGLRenderer.domElement.removeEventListener('mousedown', this.onMouseDown, false);