跨多个视图使用的骨干事件

时间:2012-06-26 21:07:25

标签: javascript model-view-controller backbone.js

我打算在我的网站上使用多个弹出窗口。每个弹出窗口都将由不同的视图呈现。如何在每个使用弹出窗口的多个视图之间共享某些事件,例如在弹出窗口外单击以关闭它?

谢谢!

1 个答案:

答案 0 :(得分:3)

使用backbone的内置扩展可能非常适合这种情况。你可以有这样的基本视图:

MyApp.PopupView = Backbone.View.extend({
  // ... your shared code here ...
})

所有其他弹出窗口都可以扩展基本弹出窗口:

MyApp.UserPopupView = MyApp.PopupView.extend({
  // ... user popup specific view code here ...
})

值得注意的是,您在子视图中指定的任何属性(包括events)都将覆盖父级中的属性。为避免这种情况,您需要合并父级的值(如果是事件),或者使用delegateEventsdocumentation)以编程方式设置它们。