Aurelia - Ereignisaggregator

Der Ereignisaggregator sollte verwendet werden, wenn Ihre Ereignisse an mehr Listener angehängt werden müssen oder wenn Sie einige Funktionen Ihrer App beobachten und auf die Datenaktualisierung warten müssen.

Der Aurelia-Ereignisaggregator verfügt über drei Methoden. DaspublishDie Methode löst Ereignisse aus und kann von mehreren Abonnenten verwendet werden. Um ein Event zu abonnieren, können wir das verwendensubscribeMethode. Und schließlich können wir die verwendendisposeMethode zum Trennen der Teilnehmer. Das folgende Beispiel zeigt dies.

Unsere Ansicht enthält nur drei Schaltflächen für jede der drei Funktionen.

app.html

<template>
   <button click.delegate = "publish()">PUBLISH</button><br/>
   <button click.delegate = "subscribe()">SUBSCRIBE</button><br/>
   <button click.delegate = "dispose()">DISPOSE</button>
</template>

Wir müssen importieren eventAggregator und injizieren Sie es, bevor wir es verwenden können.

app.js.

import {inject} from 'aurelia-framework';
import {EventAggregator} from 'aurelia-event-aggregator';

@inject(EventAggregator)
export class App {
   constructor(eventAggregator) {
      this.eventAggregator = eventAggregator;
   }
   publish() {
      var payload = 'This is some data...';
      this.eventAggregator.publish('myEventName', payload);
   }
   subscribe() {
      this.subscriber = this.eventAggregator.subscribe('myEventName', payload => {
         console.log(payload);
      });
   }
   dispose() {
      this.subscriber.dispose();
      console.log('Disposed!!!');
   }
}

Wir müssen auf klicken SUBSCRIBESchaltfläche, um auf Daten zu warten, die in Zukunft veröffentlicht werden. Sobald der Abonnent verbunden ist und neue Daten gesendet werden, protokolliert die Konsole diese. Wenn wir auf klickenPUBLISH Wenn Sie fünf Mal auf die Schaltfläche klicken, wird jedes Mal protokolliert.

Wir können unseren Abonnenten auch trennen, indem wir auf klicken DISPOSE Taste.