我在處理嵌套佈局期間運行一些有趣的問題。
讓我們來看看例子。一個index.html只有一個區域:Backbone.Marionette佈局和導航
...
<div id="screen" />
...
現在我有一個登錄視圖,它在這個區域上呈現。當我成功登錄時,我會呈現包含如此統計信息的主頁(在ApplicaitonLayout內)。 ApplicationLayout看起來像這樣
<div id="screen">
<header />
<nav id="menu" />
<section id="content"/>
<footer />
</div>
什麼,我在這裏做的是在屏幕區域呈現ApplicationLayout。這裏重要的是我希望家庭導航是可路由的。我省略了很多JS /木偶代碼,但基本上我有類似的東西(腦曼式底座)
var applicationLayout = ApplicationLayout();
var navigation = {
goHome: {
new MenuController({region: applicationRegion.menu});
new HomeController({region: applicationRegion.content});
}
}
app.screen.show(applicaitonLayout);
new HomeRoute(controller: navigation);
因此,我在這裏做的是我總是需要渲染,即使我不需要該菜單例如有人點擊不同的菜單選項,只有applicationRegion.content應該被重新渲染。 當更改導航時,如何處理部分靜態的區域(總是會顯示登錄菜單後)以更一般地進行處理?
編輯:
所以,問題是:如果我需要經常呈現在導航菜單的每一個變化的菜單,甚至這個菜單已經存在?
更具體地講,我們有2種方法來達到主頁:
- 從瀏覽器的第一個途徑,在此我們想使整個網頁(包括菜單)
- 第二導航從菜單項,在這種情況下,我們不應該需要呈現菜單,因爲它應該已經存在。
大衛你的建議,使菜單的應用區域。我不想那樣做。我的應用程序區域只是#屏幕,並在此區域添加包含菜單的ApplicationLayout。當我將菜單導航從家庭切換到配置文件時,如何處理用例,而不是始終呈現菜單區域? – user1297783
我不想菜單是一個應用程序區域,因爲這意味着它將從應用程序的開始在網站上。我希望菜單是ApplicationLayout的一部分,在用戶成功驗證後顯示。也許我錯過了一些概念,或者我在架構級別做錯了什麼? – user1297783
然後,你需要做的是當一個使用單擊一個菜單選項,你創建一個新的視圖,並在佈局區域顯示它。這就是全部...... –