2012-08-27 215 views
1

所以我想渲染一個sidemenu itemview只有當它沒有被渲染。這是如此的不切實際,我不強制重新渲染。骨幹木偶,渲染區域如果還沒有渲染

我已經想出了一個解決方案來呈現視圖,如果不是已經在一個區域中呈現。

參加由路由器:

Admin.showIndex= function(){ 
    if (!MyApp.layout.sidepanel.currentView || !(MyApp.layout.sidepanel.currentView instanceof AdminSidePanel)){ 
     MyApp.layout.sidepanel.show(new AdminSidePanel()); 
    }else{ 
     alert("Already rendered sidepanel!"); 
    } 
    // More stuff! 
} 

這是一個好辦法做到這一點稱爲控制器對象下面的例子?它的工作原理是這樣的:

  • 如果我F5刷新頁面/#admin,則將顯示側面板。
  • 如果我進入forexample /#admin/submenu並返回到#admin,sidepanel不會再次呈現。

回答

2

對我很好。我在我的項目中使用了類似的邏輯。

我更喜歡這種方法,明確維護一個全局狀態變量MyApp