Aurelia - Agregator Acara
Agregator peristiwa harus digunakan saat peristiwa Anda perlu dipasang ke lebih banyak pemroses atau saat Anda perlu mengamati beberapa fungsi aplikasi Anda dan menunggu pembaruan data.
Agregator peristiwa Aurelia memiliki tiga metode. ItupublishMetode ini akan mengaktifkan acara dan dapat digunakan oleh banyak pelanggan. Untuk berlangganan acara, kita bisa menggunakansubscribemetode. Dan akhirnya, kita bisa menggunakandisposemetode untuk melepaskan pelanggan. Contoh berikut menunjukkan hal ini.
Tampilan kami hanya akan memiliki tiga tombol untuk masing-masing dari tiga fungsi.
app.html
<template>
<button click.delegate = "publish()">PUBLISH</button><br/>
<button click.delegate = "subscribe()">SUBSCRIBE</button><br/>
<button click.delegate = "dispose()">DISPOSE</button>
</template>
Kami perlu mengimpor eventAggregator dan menyuntikkannya sebelum kami dapat menggunakannya.
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!!!');
}
}
Kita perlu mengklik SUBSCRIBEtombol untuk mendengarkan data yang akan dipublikasikan di masa mendatang. Setelah pelanggan terpasang, setiap kali data baru dikirim, konsol akan mencatatnya. Jika kita mengklikPUBLISH tombol lima kali, kita akan melihat bahwa itu dicatat setiap waktu.
Kami juga dapat melepaskan pelanggan kami dengan mengklik DISPOSE tombol.