LoginSignup
5
5

More than 5 years have passed since last update.

Backbone-Mediatorプラグインについて

Last updated at Posted at 2013-06-07

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生成時に呼ばれてる

5
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5