Backbone.Events
サブオブジェクトのシステムを親オブジェクトのシステムに置き換えたいです。例:
// initialize function of the repository object
initialize: function() {
var users = new Backbone.Collection();
// we save a reference of our event system in ourEvents object
var ourEvents = {};
ourEvents.on = this.on;
ourEvents.off = this.off;
ourEvents.trigger = this.trigger;
ourEvents.bind = this.bind;
ourEvents.unbind = this.unbind;
// now we overwrite events in users.collection with our one
_.extend(users, ourEvents);
// now we listen on the test event over this
this.on('test', function() { alert('yiha'); });
// but triggering over users works too!
users.trigger('test');
}
1 対多のイベント システムができました。1 つのリスナーと、イベントを発生させることができる多数のオブジェクト。
これは、フロントエンドと同じビュー システムを使用する場合Backbone.Collections
や、別のビュー システムを使用する場合に役立ちます。Backbone.Models
ご覧のとおり、ソリューションはまだ最適ではありません。
イベントシステムを上書きするより短い方法はありますか?
更新:
バックボーン ソース コードを調べたところBackbone.Events
、コールバック リストが以下に保存
されていることがわかりましたthis._callback
。これは、少なくとも理論的には機能するはずです。
this.users._callbacks = this._callbacks = {};