我有点困惑,在这里做什么$event事件和这两个例子有什么区别
<button (click)="clicked($event)"></button> @Component(...) class MyComponent { clicked(event) { event.preventDefault(); } }
和
<button (click)="clicked()">Click</button> @Component(...) class MyComponent { clicked(event) { } }
$event是事件本身.
事件绑定(someevent)允许绑定到DOM事件和EventEmitter事件.语法完全相同.
对于DOM事件,$event是MouseEvent,KeyboardEvent或您收听的任何事件类型的事件值.
对于EventEmitter事件,发出的值可用作$event
假设这个例子$event指的是发射的法拉利汽车实例:
@Output() carChange:EventEmitter<Car> = new EventEmitter<Car>(); someMethod() { this.carChange.emit(new Car({name: 'Ferrari'})); }
如果您不使用$click(“click”=“clicked()”),则不传递事件值.
实际上,据我记得它仍然在一些浏览器中传递但不是全部(不记得哪些)
但是,如果您使用Angulars WebWorker功能,那么如果您没有明确地列出它,您的方法可能无法获取被触发或发出的事件.