我有点困惑 $event
在这里到底做什么以及这两个示例之间有什么区别
<button (click)="clicked($event)"></button>
@Component(...)
class MyComponent {
clicked(event) {
event.preventDefault();
}
}
和
<button (click)="clicked()">Click</button>
@Component(...)
class MyComponent {
clicked(event) {
}
}
最佳答案
$event
是事件本身。
事件绑定(bind)(someevent)
允许绑定(bind)到DOM事件和EventEmitter
事件。语法完全相同。
对于 DOM 事件,$event
是 MouseEvent
、KeyboardEvent
或您监听的任何事件类型的事件值。
对于 EventEmitter
事件,发出的值可用作 $event
假设此示例 $event
引用发出的 Ferrari
汽车实例:
@Output() carChange:EventEmitter<Car> = new EventEmitter<Car>();
someMethod() {
this.carChange.emit(new Car({name: 'Ferrari'}));
}
如果您不像 (click)="clicked()"
那样使用 $event
,则不会传递事件值。
实际上据我记得它仍然在某些浏览器中传递但不是在所有浏览器中(不记得是哪些)
但是,如果您使用 Angulars WebWorker 功能,那么如果您没有明确列出,您的方法可能无法获取已触发或已发出的事件。
关于typescript - $event 对象在 Angular 2 中到底做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58586845/