Javascript backbone.js backbone.Events原型路由器事件聚合
使此eventAggregatorJavascript backbone.js backbone.Events原型路由器事件聚合,javascript,backbone.js,client-side,singlepage,Javascript,Backbone.js,Client Side,Singlepage,使此eventAggregator(Backbone.View.prototype.eventAggregator=551;.extend({},Backbone.Events);)对象在Backbone.js中可用于我的路由器,而无需将其作为参数传递 我有一个mainController(一个没有渲染的视图),在这里我正在实例化Backbone.view.prototype.eventAggregator 我还在mainController内部创建路由器,但只有视图才有eventAggrega
(Backbone.View.prototype.eventAggregator=551;.extend({},Backbone.Events);)
对象在Backbone.js中可用于我的路由器,而无需将其作为参数传递
我有一个mainController(一个没有渲染的视图),在这里我正在实例化Backbone.view.prototype.eventAggregator
我还在mainController内部创建路由器,但只有视图才有eventAggregator,而没有路由器
我不想走得更远,做Backbone.prototype.eventAggregator,这样路由器就可以拥有它。有没有更干净的方法可以做到这一点?主干网已经内置了类似的功能,您可以使用(从主干网源代码): 然后在路由器中:
Backbone.trigger('something');
鉴于:
this.listenTo(Backbone, 'something', this.someMethod);
或者另一种方法取决于您尝试执行的操作。正如Paul提到的,所有主干对象(包括路由器)都扩展了事件对象,因此您可以在这些主干对象上设置事件侦听器。但我理解为什么要集中管理事件,这样就不需要在各种对象上设置事件侦听器,也不需要传入事件聚合器 德里克·贝利(Derick Bailey)在下面的帖子中谈到了这一点,他提出的解决方案是创建一个应用程序级事件aggreagator 此外,如果您正在做比“待办”应用程序更复杂的事情,我鼓励您查看一些主干框架,如卓别林、木偶、样板等。您可以找到列表 在我的应用程序中,我使用了木偶网框架,并且发现它在创建模块化、易于维护的代码方面非常有用,其中已经处理了许多常用的重复性代码
this.listenTo(Backbone, 'something', this.someMethod);