2014-01-27 88 views
0

我正在尋找一種方法來刪除重新佈置佈局的需要,如果它的一個實例已被使用。在索引下創建一個新的PreactivationLayout,然後將其綁定到應用程序對象的主要區域。然後,如果您要訪問第2頁,我想檢查PreactivationLayout是否正在使用中;如果是這樣,只需交換區域,如果不是創建一個新的實例並將其添加到應用程序對象。木偶:檢查一個佈局是否有另一個對象的實例

class IndexController extends Marionette.Controller 
    initialize: (options)-> 
     @app = options.app 

    index: -> 

     layout = new PreactivationLayout() 

     @app.main.show layout 
     layout.main.show new IndexView() 

    page2: -> 

     // Is the current layout an instace of the Preactivation class? 

回答

3

你可以做這樣的事情,這將檢查是否當前區域內的視圖具有相同的構造。

if(!layout.main.currentView || layout.main.currentView.constructor !== PreactivationLayout){ 
    layout.main.show(new PreactivationLayout()); 
} 

或譚阮的意見建議,

if(!layout.main.currentView || !(layout.main.currentView instanceof PreactivationLayout)){ 
    layout.main.show(new PreactivationLayout()); 
} 
+2

怎麼樣'layout.main.currentView的instanceof PreactivationLayout'?同樣的事,我說得對嗎? –

+0

@TanNguyen是的,結果一樣。我其實更喜歡你的語法,我會將其添加到答案中。 –

+0

甜美,它使得像我這樣的懶人們的代碼更短一點 –

相關問題