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.