Aurelia-イベントアグリゲーター

イベントアグリゲーターは、イベントをより多くのリスナーにアタッチする必要がある場合、またはアプリの一部の機能を監視してデータの更新を待つ必要がある場合に使用する必要があります。

Aureliaイベントアグリゲーターには3つの方法があります。ザ・publishメソッドはイベントを発生させ、複数のサブスクライバーが使用できます。イベントの購読には、subscribe方法。そして最後に、disposeサブスクライバーを切り離す方法。次の例はこれを示しています。

ビューには、3つの機能ごとに3つのボタンがあります。

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 ボタンを5回押すと、毎回ログに記録されることがわかります。

をクリックしてサブスクライバーを切り離すこともできます DISPOSE ボタン。