在主干中将事件从一个视图触发到另一个视图
我有一个主视图,在该主视图内有另一个视图,当我单击按钮时会创建该视图。有没有办法在父视图上侦听从子视图触发的事件的自定义事件。我尝试使用 jQuery 触发器通过 el 属性来完成此操作,但这不太有效。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我有一个主视图,在该主视图内有另一个视图,当我单击按钮时会创建该视图。有没有办法在父视图上侦听从子视图触发的事件的自定义事件。我尝试使用 jQuery 触发器通过 el 属性来完成此操作,但这不太有效。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
是的,没问题...您将需要使用“事件聚合器”模式。 Backbone 中只有 1 行代码:
var eventAgg = _.extend({}, Backbone.Events);
现在,您可以在应用程序中的任何位置触发/绑定到来自此对象的事件,并拥有应用程序的不同部分以解耦的方式相互通信。
我经常用这个!
我还在这里发布了更多相关信息:http://lostechies.com/derickbailey/2011/07/19/references-routing-and-the-event-aggregator-coordinating-views-in-backbone-js/
Ya, no problem... you'll want to use the "Event Aggregator" pattern. It's 1 line of code in Backbone:
var eventAgg = _.extend({}, Backbone.Events);
Now can you trigger / bind to events from this object, everywhere in your app, and have the different parts of your app communicate with each other in a decoupled manner.
I use this a LOT!
I also blogged more about it here: http://lostechies.com/derickbailey/2011/07/19/references-routing-and-the-event-aggregator-coordinating-views-in-backbone-js/
这是另一种方法,对于正在寻找一种简单方法将事件从子视图“冒泡”到父视图的人来说可能更直观:
https://github.com/dgbeck/backbone.courier
自述文件中有一些关于它与事件聚合器的比较的讨论。
Here is another approach, that might be more intuitive for people who are looking for a simple way to "bubble" events up from a child view to a parent view:
https://github.com/dgbeck/backbone.courier
There is some discussion in the readme on how it compares to event aggregators.
不需要滚动您自己的“事件聚合器”或中介器或 pubsub(就像上面描述的那样简单),因为 Backbone 将 Events 对象直接混合到其命名空间中的 Backbone 对象。这是源代码及其实现文档的链接。
Rolling your own "event aggregator" or mediator or pubsub (as easy as it is described above) is not necessary since Backbone mixes in the Events object directly to the Backbone object in their namespace. Here's a link to the source code and their documentation on the implementation.