2012-06-26 36 views
1

我打算在我的網站上使用多個彈出窗口。每個彈出窗口都將以不同的視圖呈現。我怎樣才能分享某些事件,例如在彈出窗口之外單擊以關閉它,跨越這些使用彈出窗口的多個視圖?在多個視圖中使用的主幹事件

謝謝!

回答

3

使用主幹的內置擴展可能非常適合這一點。你可以有像這樣一個基本視角:

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

和所有其他彈出窗口可以擴展底座彈出:

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

值得一提的是,你在一個子視圖指定任何屬性,包括events會覆蓋父級中的屬性。爲避免這種情況,您需要合併父項的值(如果是事件),或者使用delegateEventsdocumentation)以編程方式設置它們。

+0

在'PopupView'上面使用'MyApp.PopupView'有什麼好處嗎?另外,如何在我的'UserPopupView'渲染函數中調用'PopupView'的渲染函數? – Garrett

+0

命名空間的好處是避免命名與其他庫的衝突,尤其是在使用更多不明確的名稱時。爲了調用「超類」功能,你需要使用apply:'MyApp.UserPopupView.render()''MyApp.PopupView.prototype.render.apply(this,arguments)'。 – bloudermilk