在骨干中从一个视图向另一个视图发射事件

时间:2011-10-20 23:01:14

标签: jquery backbone.js

我有一个主视图,在主视图里面,我有另一个视图,当我点击一个按钮时会创建。有没有办法在父视图上侦听从子视图触发的事件的自定义事件。我试图通过使用jQuery触发器的el属性来完成它,但这并不是很有效。

3 个答案:

答案 0 :(得分:44)

雅,没问题......你会想要使用“Event Aggregator”模式。它是Backbone中的一行代码:

var eventAgg = _.extend({}, Backbone.Events);

现在,您可以在应用程序的任何位置触发/绑定来自此对象的事件,并让应用的不同部分以分离的方式相互通信。

我用这个很多!

我还在此处发布了更多相关信息:http://lostechies.com/derickbailey/2011/07/19/references-routing-and-the-event-aggregator-coordinating-views-in-backbone-js/

答案 1 :(得分:2)

这是另一种方法,对于那些正在寻找一种简单的方法将事件从子视图“冒泡”到父视图的人来说,这可能更直观:

https://github.com/dgbeck/backbone.courier

自述文件中有一些关于如何与事件聚合器进行比较的讨论。

答案 2 :(得分:0)

滚动你自己的"事件聚合器"或者mediator或pubsub(就像上面描述的那样简单)是不必要的,因为Backbone将Events对象直接混合到其命名空间中的Backbone对象。这里是源代码link及其实施文档。

  

允许Backbone对象充当全局事件总线,适合那些想要在方便的地方使用全局“pubsub”的人。