3 回答
TA贡献1921条经验 获得超9个赞
如果您希望能够将此添加到任何元素而不必一遍又一遍地复制/粘贴相同的代码,则可以创建一条指令来执行此操作。它很简单,如下所示:
import {Directive, HostListener} from "@angular/core";
@Directive({
selector: "[click-stop-propagation]"
})
export class ClickStopPropagation
{
@HostListener("click", ["$event"])
public onClick(event: any): void
{
event.stopPropagation();
}
}
然后只需将其添加到所需的元素上即可:
<div click-stop-propagation>Stop Propagation</div>
TA贡献1789条经验 获得超10个赞
最简单的方法是在事件处理程序上调用停止传播。$event在Angular 2中的工作原理相同,并包含进行中的事件(通过鼠标单击,鼠标事件等):
(click)="onEvent($event)"
在事件处理程序上,我们可以在那里停止传播:
onEvent(event) {
event.stopPropagation();
}
TA贡献1863条经验 获得超2个赞
如果您使用的是绑定到事件的方法,则只需返回false:
@Component({
(...)
template: `
<a href="/test.html" (click)="doSomething()">Test</a>
`
})
export class MyComp {
doSomething() {
(...)
return false;
}
}
- 3 回答
- 0 关注
- 584 浏览
添加回答
举报