Javascript 跨多个视图使用的主干事件

Javascript 跨多个视图使用的主干事件,javascript,model-view-controller,backbone.js,Javascript,Model View Controller,Backbone.js,我计划在我的网站上使用多个弹出窗口。每个弹出窗口将由不同的视图呈现。我如何在这些使用弹出窗口的多个视图中共享某些事件,如单击弹出窗口外部以关闭它 谢谢 使用主干内置的extend可能非常适合这种情况。您可以有这样一个基本视图: MyApp.PopupView = Backbone.View.extend({ // ... your shared code here ... }) 所有其他弹出窗口都可以扩展基本弹出窗口: MyApp.UserPopupView = MyApp.PopupVi

我计划在我的网站上使用多个弹出窗口。每个弹出窗口将由不同的视图呈现。我如何在这些使用弹出窗口的多个视图中共享某些事件,如单击弹出窗口外部以关闭它


谢谢

使用主干内置的extend可能非常适合这种情况。您可以有这样一个基本视图:

MyApp.PopupView = Backbone.View.extend({
  // ... your shared code here ...
})
所有其他弹出窗口都可以扩展基本弹出窗口:

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

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

PopupView
上使用
MyApp.PopupView
是否有好处?另外,如何在我的
UserPopupView
呈现函数中调用
PopupView
的呈现函数?名称空间的好处是避免了与其他库的命名冲突,尤其是在使用更模糊的名称时。为了调用“超类”函数,您需要使用apply,比如:
MyApp.PopupView.prototype.render.apply(这是参数)
from
MyApp.UserPopupView.render()