var MyApp = new Backbone.Marionette.Application(); // Alert the user on the 'minutePassed' event MyApp.vent.on("minutePassed", function(someData){ alert("Received", someData); }); // This will emit an event with the value of window.someData every minute window.setInterval(function() { MyApp.vent.trigger("minutePassed", window.someData); }, 1000 * 60);
アプリに、vent.onというのを使って、イベント発生時の挙動を登録する。あとは、登録したイベントを発生させたいところで、vent.triggerする。
他のView間で連携する場合は、Viewのinitialize関数で、下記のようにやる。
initialize: function(){ _.bindAll(this, 'hoge'); App.vent.on('HogeHoge', this.hoge); },
このViewのインスタンスが作成されるときに、initalize関数が呼ばれますが、そのときにHogeHogeというイベントが発生したら、このViewのhogeを実行するよと、登録している。あとは、他のViewで、App.vent.trigger('HogeHoge');とやると、HogeHogeイベントが発火する。