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 ボタン。