在Angular 2中,$ event事件究竟是做什么的?

Sar*_*dav 29 event-handling typescript angular

我有点困惑,在这里做什么$ event事件和这两个例子有什么区别

<button (click)="clicked($event)"></button>

@Component(...)
class MyComponent {
  clicked(event) {
    event.preventDefault();
  }
}
Run Code Online (Sandbox Code Playgroud)

<button (click)="clicked()">Click</button>



 @Component(...)
    class MyComponent {
      clicked(event) {
      }
    }
Run Code Online (Sandbox Code Playgroud)

Gün*_*uer 28

$event 是事件本身.

事件绑定(someevent)允许绑定到DOM事件和EventEmitter事件.语法完全相同.

对于DOM事件$eventMouseEvent,KeyboardEvent或事件你听任何事件的类型的值.

对于EventEmitter事件,发射的值可用作$event

假设此示例$event引用了发出的Ferrari汽车实例:

@Output() carChange:EventEmitter<Car> = new EventEmitter<Car>();

someMethod() {
  this.carChange.emit(new Car({name: 'Ferrari'}));
}
Run Code Online (Sandbox Code Playgroud)

如果您不使用$eventlike in (click)="clicked()"那么事件值不会传递.

实际上,据我记得它仍然在一些浏览器中传递但不是全部(不记得哪些)

但是,如果您使用Angulars WebWorker功能,那么如果您没有明确地列出它,则您的方法可能无法获取触发或发出的事件.