Backbone.Marionette和Event Aggregator

时间:2012-06-20 12:48:13

标签: backbone.js marionette

参考网址:http://davidsulc.com/blog/2012/04/22/a-simple-backbone-marionette-tutorial-part-2/

我对骨干和事件聚合器很天真。你能否告诉我使用以下代码行的原因。

this.model.addVote(); MyApp.vent.trigger(“rank:down”,this.model);

似乎还有其他一些可能性

this.model.addVote(); this.model(rankDown);

或其他方式 MyApp.vent.trigger(“addVote”,this.model

请解释谢谢。

正在运行示例:http://jsfiddle.net/Irfanmunir/966pG/29/

1 个答案:

答案 0 :(得分:3)

事件通常对于将对象彼此解耦,同时仍然允许它们进行通信非常有用。应用程序级别的事件聚合器模式(或发布/订阅模式)允许通过在混合中包含第三方进一步解耦:发布者,聚合器,订阅者。这样,发布者和订阅者都不必彼此了解。他们每个人都只知道事件聚合器。

我前一段时间写了一篇小文章:

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

在这种情况下,使用事件是因为模型需要在其所属的集合的上下文中进行操作。而不是通过模型来获取集合(它可能不会被直接分配给...模型不需要成为集合的一部分),而是提升此事件并将其处理到更多地方更容易,更灵活合适的。