【发布时间】:2018-09-23 08:04:34
【问题描述】:
在我的 Angular 4 应用程序中,我有一个带有 (dblclick) 处理程序的父组件和一个带有 (click) 处理程序的子组件。
component.html
<mat-list (dblclick)="goBack()">
<button (click)="add($event)"> Add </button>
</mat-list>
组件.ts
add(event){
event.stopPropagation();
doSomething();
}
但是,据我所见,stopPropagation 仅停止相同类型的事件。在这个例子中,如果有人双击按钮,它会调用 goBack() 函数。如果我将父组件的事件更改为单个(单击)事件,则会停止传播。
无论如何我可以通过孩子的 (click) 事件阻止父母中的 (dblclick) 吗?
提前致谢。
【问题讨论】:
-
你想在单击右键时阻止(dblclick)?
-
如何将
EventEmitter用作子级的@output,可以在parentComponent的ngOnChanges(changes: SimpleChanges)函数中进行监控。您无法控制父 dblclick 事件,但您当然可以设置一个boolean,它可以允许执行goBack()函数。我希望它有所帮助 -
这是个好主意。不幸的是,我的问题不准确。 child 不是 Angular 组件,它只是一个 HTML 按钮。如果我要走这条路,我必须把它变成一个实际的组件。
标签: angular click stoppropagation