Aurelia - ผู้รวบรวมเหตุการณ์

ควรใช้ตัวรวบรวมเหตุการณ์เมื่อจำเป็นต้องแนบเหตุการณ์ของคุณกับผู้ฟังมากขึ้นหรือเมื่อคุณต้องการสังเกตการทำงานบางอย่างของแอพของคุณและรอการอัปเดตข้อมูล

ตัวรวบรวมเหตุการณ์ Aurelia มีสามวิธี publishวิธีการจะเริ่มต้นเหตุการณ์และสามารถใช้โดยสมาชิกหลายคน สำหรับการสมัครเข้าร่วมกิจกรรมเราสามารถใช้ไฟล์subscribeวิธี. และสุดท้ายเราสามารถใช้ไฟล์disposeวิธีการแยกสมาชิก ตัวอย่างต่อไปนี้แสดงให้เห็นถึงสิ่งนี้

มุมมองของเราจะมีปุ่มสามปุ่มสำหรับแต่ละฟังก์ชันทั้งสาม

app.html

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

เราจำเป็นต้องนำเข้า eventAggregator และฉีดก่อนจึงจะใช้งานได้

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

เราต้องคลิกไฟล์ SUBSCRIBEปุ่มเพื่อฟังข้อมูลที่จะเผยแพร่ในอนาคต เมื่อแนบสมาชิกแล้วเมื่อใดก็ตามที่มีการส่งข้อมูลใหม่คอนโซลจะบันทึกข้อมูลนั้น หากเราคลิกไฟล์PUBLISH ปุ่มห้าครั้งเราจะเห็นว่ามีการเข้าสู่ระบบทุกครั้ง

นอกจากนี้เรายังสามารถแยกสมาชิกของเราได้โดยคลิกที่ไฟล์ DISPOSE ปุ่ม.