我有我喜歡那裏有我的導航在初始標記(因爲SEO的)木偶地區,並享有與現有的DOM
<header id="header-region">
<ul id="menu">
<li>frontpage</li>
<li>about</li>
<li>contact</li>
<li>testing</li>
</ul>
</header>
然後我創建了一個木偶佈局查看可用的標題區:
var MenuView = Backbone.Marionette.ItemView.extend({});
var menuView = new MenuView({
el: '#menu'
});
App.headerRegion.attachView(menuView);
這工作完美無瑕,但是當我後來改變headerRegion內容
App.headerRegion.show(anotherView);
,然後想切換回
App.headerRegion.show(menuView);
它試圖渲染menuView而是因爲它沒有「模板」失敗的話,我可以以某種方式重複使用相同的視圖實例沒有原始MAINVIEW重新渲染呢?或者是「重新初始化新菜單視圖」的「Marionette方法」? (即時通訊只是好奇,如果我有一個相當複雜的觀點,需要交換出相當多,每次重新呈現的視圖可能會相當昂貴)
謝謝:)因爲我需要調換我的看法,並我喜歡我的觀點「el」在最初的HTML(用於搜索引擎優化目的),你有什麼建議我怎麼能解決我的問題?我可以想象它是一個相當常見的問題,我可以想到的一種方式是「緩存」原始DOM節點引用,並且每次我需要重新編譯時,都會執行新的MenuView({el:cachedDomNode}); –
使用css而不是Regions可能會更安全,讓它們始終在dom中處於活動狀態,但使用'display:none' –
+1來顯示和隱藏它們以獲得堅實的意見。 –