Aurelia - Aggregatore di eventi

L'aggregatore di eventi dovrebbe essere utilizzato quando i tuoi eventi devono essere allegati a più listener o quando devi osservare alcune funzionalità della tua app e attendere l'aggiornamento dei dati.

L'aggregatore di eventi Aurelia ha tre metodi. Ilpublishil metodo attiverà eventi e può essere utilizzato da più abbonati. Per iscriversi a un evento, possiamo utilizzare ilsubscribemetodo. Infine, possiamo usare il filedisposemetodo per scollegare gli iscritti. Il seguente esempio lo dimostra.

La nostra vista avrà solo tre pulsanti per ciascuna delle tre funzionalità.

app.html

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

Dobbiamo importare eventAggregator e iniettalo prima che siamo in grado di usarlo.

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

Dobbiamo fare clic su SUBSCRIBEpulsante per ascoltare i dati che verranno pubblicati in futuro. Una volta che l'abbonato è stato collegato, ogni volta che vengono inviati nuovi dati, la console li registrerà. Se facciamo clic sul filePUBLISH cinque volte, vedremo che viene registrato ogni volta.

Possiamo anche scollegare il nostro abbonato facendo clic su DISPOSE pulsante.