Aurelia - Agregador de eventos

El agregador de eventos debe usarse cuando sus eventos deben adjuntarse a más oyentes o cuando necesita observar alguna funcionalidad de su aplicación y esperar la actualización de datos.

El agregador de eventos de Aurelia tiene tres métodos. lospublishEl método disparará eventos y puede ser utilizado por varios suscriptores. Para suscribirse a un evento, podemos utilizar elsubscribemétodo. Y finalmente, podemos usar eldisposemétodo para desvincular a los suscriptores. El siguiente ejemplo demuestra esto.

Nuestra vista solo tendrá tres botones para cada una de las tres funcionalidades.

app.html

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

Necesitamos importar eventAggregator e inyectarlo antes de que podamos 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!!!');
   }
}

Necesitamos hacer clic en el SUBSCRIBEpara escuchar los datos que se publicarán en el futuro. Una vez que se adjunta el suscriptor, cada vez que se envían nuevos datos, la consola los registrará. Si hacemos clic en elPUBLISH cinco veces, veremos que se registra cada vez.

También podemos desvincular nuestro suscriptor haciendo clic en el DISPOSE botón.