Backbone.js的全球性事件(Backbone.js global events)

2019-06-23 10:19发布

关于骨干事件一个简单的问题 - 有没有什么办法来定义一组全球性活动,在不同的视图可重复使用的?

举例来说 - 说我这是在网页上呈现的几点看法。 每个视图都有一个按钮,将展开一个菜单。 还有其他一些通用元素和事件。 如果不把这个事件逻辑到每个查看,是否有这些意见可以继承,或从全局事件定义拉这些事件的方法吗? 这肯定会通过在一个地方定义这些一般事件节省时间,很多清洁的解决方案。

我见过抛向四周诸如事件聚合和工厂模式 - 但不能肯定的最佳方法(或者,如果他们将实现我后)。

Answer 1:

你基本上描述事件的聚合或调度员,是的。 我有一对夫妇的建设和使用它们与骨干网的文章:

http://lostechies.com/derickbailey/2011/07/19/references-routing-and-the-event-aggregator-coordinating-views-in-backbone-js/

http://lostechies.com/derickbailey/2012/04/03/revisiting-the-backbone-event-aggregator-lessons-learned/

并有各地的网络还有更多的文章做与骨干网和其他的pub / sub库相同。

这是很简单的骨干做:


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

现在你有一个vent ,可以用来作为在所有的应用程序的视图和其他对象的事件聚合对象。


vent.on("some:event", function(){
  console.log("some event was fired");
});

vent.trigger("some:event");


文章来源: Backbone.js global events
标签: backbone.js