Aurelia - agregador de eventos
O agregador de eventos deve ser usado quando seus eventos precisam ser anexados a mais ouvintes ou quando você precisa observar alguma funcionalidade do seu aplicativo e aguardar a atualização dos dados.
O agregador de eventos Aurelia possui três métodos. opublishmétodo irá disparar eventos e pode ser usado por vários assinantes. Para se inscrever em um evento, podemos usar osubscribemétodo. E, finalmente, podemos usar odisposemétodo para desanexar os assinantes. O exemplo a seguir demonstra isso.
Nossa visualização terá apenas três botões para cada uma das três 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>
Precisamos importar eventAggregator e injetá-lo antes que possamos usá-lo.
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!!!');
}
}
Precisamos clicar no SUBSCRIBEbotão para ouvir os dados que serão publicados no futuro. Assim que o assinante for conectado, sempre que novos dados forem enviados, o console os registrará. Se clicarmos noPUBLISH botão cinco vezes, veremos que é registrado todas as vezes.
Também podemos destacar nosso assinante clicando no DISPOSE botão.