Aurelia - Agrégateur d'événements

L'agrégateur d'événements doit être utilisé lorsque vos événements doivent être associés à plus d'écouteurs ou lorsque vous devez observer certaines fonctionnalités de votre application et attendre la mise à jour des données.

L'agrégateur d'événements Aurelia a trois méthodes. lepublishLa méthode déclenchera des événements et pourra être utilisée par plusieurs abonnés. Pour vous abonner à un événement, nous pouvons utiliser lesubscribeméthode. Et enfin, nous pouvons utiliser ledisposeméthode pour détacher les abonnés. L'exemple suivant illustre cela.

Notre vue n'aura que trois boutons pour chacune des trois fonctionnalités.

app.html

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

Nous devons importer eventAggregator et injectez-le avant que nous ne puissions l'utiliser.

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!!!');
   }
}

Nous devons cliquer sur le SUBSCRIBEbouton pour écouter les données qui seront publiées à l'avenir. Une fois l'abonné connecté, chaque fois que de nouvelles données sont envoyées, la console les enregistre. Si nous cliquons sur lePUBLISH bouton cinq fois, nous verrons qu'il est enregistré à chaque fois.

Nous pouvons également détacher notre abonné en cliquant sur le bouton DISPOSE bouton.