5

我的自定义组件click功能被触发了两次 - 自定义组件的事件和样本级别事件都被触发。

这是我的 Plunker:

https://plnkr.co/edit/wp2iWh7OStdPm5uXsWbP?p=preview

4

4 回答 4

18

因为您在子组件和父组件上绑定了两次。默认情况下mouseEvent从子组件传播到父组件。您可以停止将事件传播到父组件。

模板:

<div (click)="divClick($event)">Custom Div Clcik here!</div>

班级:

divClick(event) {
    event.stopPropagation();
    alert("divClick");
}
于 2017-02-08T11:48:03.043 回答
0

我相信:添加发射也可以解决它

模板

<div (click)="divClick($event)">Custom Div Clcik here!</div>

班级

@Output()
divClick = new EventEmitter<any>().emit;
于 2020-07-10T05:23:24.583 回答
0

您的问题是您在父组件和子组件中调用 click() 事件:这里:

<cus-div (click)="onClick()"></cus-div>

和这里:

<div (click)="divClick()">Custom Div Clcik here!</div>

删除您的点击事件上<cus-div></cus-div>的点击事件,它将触发一次

于 2017-02-08T14:01:45.387 回答
-1

尝试:

event.preventDefault();

代替:

event.stopPropagation();
于 2019-08-10T16:34:24.417 回答