2013-07-05 37 views
0

在我的骨幹軟件,我在父視圖中創建一個酥料餅,並把它添加到DOM這樣追加子視圖

afterRender: function() { 
    this.$el.append(
     new Popover.Views.Default({ 
     stick:'right', 
     offsetTop: 3, 
     offsetRight: 5, 
     content: "Foo", 
     reference: this.$el 
    }).render().$el 
    ); 
}, 
toggle: function(){ 
    app.vent.trigger('popover34:toggle'); 
} 

然而,酥料餅附加到其父視圖。父視圖是一個鏈接,這導致popover中的一些CSS問題。

我的問題是,它是安全做這樣的事情:

afterRender: function() { 
    $('body').append(
     new Popover.Views.Default({ 
     stick:'right', 
     offsetTop: 3, 
     offsetRight: 5, 
     content: "Foo", 
     reference: this.$el 
    }).render().$el 
    ); 
} 

還是有一種方法來設置它只是父視圖的旁邊?問題是,當我切換彈出窗口時,它會多次添加到DOM。

+0

你永遠不會刪除popover視圖? –

+0

@ muistooshort不,我只是隱藏/顯示它 –

+1

因此,你不斷創造新的,永遠不要刪除他們,並想知道爲什麼有一個問題?爲什麼不在popover關閉時銷燬它們?然後你可以將它們追加到''(他們可能屬於的地方),一切都會好的,不是嗎? –

回答

1

看起來你正在使用木偶。使用木偶,處理這種方法的一種方法是regions。從文檔:

地區提供一致的方式來管理你的意見和顯示/在應用程序關閉它們。他們使用jQuery選擇器在正確的位置顯示您的視圖。

你可以把你的區域的任何地方,你喜歡和使用事件觸發聚合它。另外,它會自動關閉舊視圖,所以你不會以殭屍結束。