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(这是参数)
fromMyApp.UserPopupView.render()