web-dev-qa-db-ja.com

Angular 2?

ここで$ eventが正確に実行していることと、この2つの例の違いは少し混乱しています

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

@Component(...)
class MyComponent {
  clicked(event) {
    event.preventDefault();
  }
}

そして

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



 @Component(...)
    class MyComponent {
      clicked(event) {
      }
    }
25
Sarvesh Yadav

$eventはイベント自体です。

イベントバインディング(someevent)により、DOMイベントおよびEventEmitterイベントにバインドできます。構文はまったく同じです。

DOMイベントの場合、$eventMouseEventKeyboardEvent、またはリッスンするイベントの種類のイベント値です。

EventEmitterイベントの場合、発行された値は$eventとして利用可能です

この例では、$eventは発行されたFerrari carインスタンスを参照すると仮定します。

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

someMethod() {
  this.carChange.emit(new Car({name: 'Ferrari'}));
}

$eventのように(click)="clicked()"を使用しない場合、イベント値は渡されません。

実際に私がそれを覚えている限りではまだいくつかのブラウザで渡されますしかし全部ではありません(どれを覚えていないか)

ただし、Angulars WebWorker機能を使用している場合、明示的にリストしないと、メソッドは発生または放出されたイベントを取得しない可能性があります。

26

テンプレートで_$event_を渡さない場合、clicked()メソッドで_$event_変数を使用できません。

こちらをご覧ください Plunker クイック比較

3
rinukkusu