Backbone-Mediator
https://github.com/chalbert/Backbone-Mediator
Backboneにpub/sub?を追加するプラグイン
API
publish(channel)
channel string
メッセージ(チャネル)の名前
// メッセージを発行
Backbone.Mediator.publish(channel);
// 上記と同じ
Backbone.Mediator.pub(channel);
// 引数も渡せる
// subscribe()のsubscriptionで指定した関数に渡される
Backbone.Mediator.publish(channel, 'foo', 'bar');
jQueryのtrigger()みたいなやつ
subscribe(channel, subscription, context, once)
channel string
メッセージ(チャネル)の名前
subscription function
メッセージ(チャネル)を購読した際に実行する関数
context object
subscription実行時のthis
once boolean
一回だけの実行かどうか
// メッセージ(チャネル)を購読
Backbone.Mediator.subscribe(channel, subscription, context, once);
// 上記と同じ
Backbone.Mediator.sub(channel, subscription, context, once);
jQueryのon()みたいなやつ
subscribeOnce(channel, subscription, context)
channel string
メッセージ(チャネル)の名前
subscription function
メッセージ(チャネル)を購読した際に実行する関数
context object
subscription実行時のthis
// 一度だけメッセージ(チャネル)を購読
Backbone.Mediator.subscribeOnce(channel, subscription, context);
// 上記と同じ
Backbone.Mediator.subscribe(channel, subscription, context, true);
Backbone.Mediator.sub(channel, subscription, context, true);
jQueryのone()みたいなやつ
unsubscribe(channel, subscription, context)
channel string
メッセージ(チャネル)の名前
subscription function
メッセージ(チャネル)を購読した際に実行する関数
context object
subscription実行時のthis
// メッセージ(チャネル)の購読を終了
Backbone.Mediator.unsubscribe(channel, subscription, context);
jQueryのoff()みたいなやつ
subscriptions
delegateEvents()が呼ばれた時に自動的にsubscriptionsがsetされる
undelegateEvents()が呼ばれた時に自動的にsubscriptionsがunsetされる
var MyView = Backbone.View.extend({
// まとめてチャネルの購読を設定
subscriptions: {
'hoge:fuga': 'doFuga', // 'hoge:fuga'チャネルが発行されたらthis.doFugaを実行
'hoge:piyo': function() {
// ...
}
}
});
Backbone-MediatorがBackbone.Viewに追加した機能
ちなみにdelegateEvents()はView生成時に呼ばれてる