我有一个abc组件(页面的一部分).它有一个事件mouseup.
@Component({
selector: 'abc-component'
})
@View({
<div (mousedown)="mouseDown()" (mouseup)="mouseUp()"></div>
})
export class ScheduleComponent {
mouseDown(){
//doSomthing
}
mouseUp(){}
}
Run Code Online (Sandbox Code Playgroud)
但是mouseup事件只能在鼠标内部触发时触发<div>.如何在外面触发事件<div>?
我是否必须移动(mouseup)="mouseUp()"到app.ts然后使用类似@Output或service让app.ts知道的东西?还有其他方法吗?
谢谢
Gün*_*uer 14
添加一个全局事件目标,如
<div (window:mousedown)="mouseDown()" (window:mouseup)="mouseUp()"></div>
Run Code Online (Sandbox Code Playgroud)
全球听取事件.(body并且也可以document工作).
这当然也适用于组件类
@HostListener('window:mouseup', ['$event'])
mouseUp(event){}
Run Code Online (Sandbox Code Playgroud)
在组件内部,它首选执行以下操作:
@HostListener('document:mouseup', ['$event'])
onMouseUp(event: MouseEvent) {
...
}
Run Code Online (Sandbox Code Playgroud)
这样你就不需要删除事件 ngDestroy
| 归档时间: |
|
| 查看次数: |
7541 次 |
| 最近记录: |