如何在Backbone View层次结构中"冒泡"事件?

ryb*_*ome 19 javascript event-handling backbone.js

我有一个骨干应用程序,其视图结构如下所示 - 请注意,为了简洁,我删除了实现,模型,集合等:

NewsListView = Backbone.View.extend({

    el: $('li#newspane'),

    // This is what I would like to be able to do
    // events: { 'filtered': 'reset' }

    initialize: function() {
        _.bindAll(this);
    },

    render: function() {
    },

    reset: function(){
    }

});

FilterView = Backbone.View.extend({

    el: $('li.filter'),

    initialize: function() {
    },

    render: function() {
    },

    toggleFilter: function() {
    }

});

AllView = Backbone.View.extend({

    initialize: function() {

        this.newsListView = new NewsListView();
        this.filterView = new FilterView();

    }

});
Run Code Online (Sandbox Code Playgroud)

从本质上讲,只要FilterViewtoggleFilter()函数被调用,我想激发关闭称为事件filtered像,然后由该抓什么NewsListView,然后调用它的reset()功能.没有将NewsListView对象的引用传递给我FilterView,我不确定如何将它发送给我.有任何想法吗?

rya*_*arc 5

你走在正确的轨道上.听起来你需要的是全球事件调度员.这里有一篇不错的文章和例子:http://www.michikono.com/2012/01/11/adding-a-centralized-event-dispatcher-on-backbone-js/