Events Angular2使用onmouseup事件覆盖本机行为

Events Angular2使用onmouseup事件覆盖本机行为,events,input,range,angular,Events,Input,Range,Angular,我目前正在使用angular2和typescript开发一个应用程序。 我需要使用范围滑块输入发送控件,我需要知道何时使用输入,即用户何时拖动它 我尝试结合使用“mouseup”和“mousedown”事件。 当您单击滑块时,“mousedown”事件被触发,“isActive”变量被设置为true,然后当用户停止使用滑块时,“mouseup”事件被触发,“isActive”变量被设置为false <input type="range" (mousedown)="isActive = tr

我目前正在使用angular2和typescript开发一个应用程序。 我需要使用范围滑块输入发送控件,我需要知道何时使用输入,即用户何时拖动它

我尝试结合使用“mouseup”和“mousedown”事件。 当您单击滑块时,“mousedown”事件被触发,“isActive”变量被设置为true,然后当用户停止使用滑块时,“mouseup”事件被触发,“isActive”变量被设置为false

<input type="range" (mousedown)="isActive = true" (mouseup)="isActive = false" />

这一部分工作得很好,但是我在“mouseup”事件上设置了一个操作,这看起来覆盖了一个本机操作,滑块永远不会释放

下面是一个简单的plunker,显示了该行为:

是我没有实现必要的功能来实现这项功能吗?还是来自angular2的一个“bug”,它不传播事件而只是覆盖事件


提前谢谢你。

我找到了一种方法让这一切顺利进行。我在“mouseup”事件中添加了一个
$event.propagate()
,如下所示:

<input type="range" (mousedown)="isActive = true" (mouseup)="isActive = false;$event.propagate();" />

但是我必须这样做才能正常工作,这是正常的吗?事件是否应该通过angular2自动传播?

我将
isActive
赋值包装到方法中,使您的代码工作。 看看plnkr

行为不同的原因是当你这样做的时候

isActive = true
isActive = false
它返回
true
,并继续事件冒泡。 当你这么做的时候

isActive = true
isActive = false

它返回
false
,并防止事件冒泡。

感谢您的回答,我将实施您的解决方案。我发现它比使用$event.propagate()更优雅。