2013-01-10 43 views
0

嘿,我對Backbone相當新穎,儘管我已經花了好幾天的時間來試圖熟悉這個框架,並且似乎每次我開始感覺舒適時,我會遇到新問題。從應用程序視圖中引用主幹視圖

我想知道如何引用從我的主appview中呈現的視圖。我知道這是一個非常簡單的問題,但我似乎無法弄清楚。

所以,比如我有一個簡單的視圖

var SubView = Backbone.View.extend({ 
    //something here including render function 
}); 

然後我渲染視圖從主應用視圖中

var myApp = Backbone.View.extend({ 
    render: function{ 
     var mysubView = new SubView(); 
     mysubView.render(); 
    }, 
    editSomething: function{ 
     mysubView.remove(); 
    } 
}); 

當我嘗試和參考,從一個函數(editSomething查看: )在主應用程序視圖中,我得到一個參考錯誤。

我想實現的是我有兩個包含窗體的視圖。我想在兩種形式之間切換,因爲編輯函數被調用,並且調用add函數。但我似乎無法訪問已呈現的視圖。

我不想在刪除現有的視圖之前初始化並渲染一個新的視圖,因爲據我所知,我將開始獲取一堆視圖在內存中浮動。它使用this

回答

0

參考:

var myApp = Backbone.View.extend({ 
    render: function{ 
     this.subView = new SubView(); 
     this.subView.render(); 
    }, 
    editSomething: function{ 
     this.subView.remove(); 
    } 
}); 
+0

感謝您的快速答覆。我試過這個解決方案,但我仍然得到:TypeError:表達式結果'this.subView'[undefined]不是一個對象。 –

+0

你能用更完整的代碼更新原始問題嗎?錯誤在於您如何註冊事件。我很樂意提供協助。 – Lukas

+0

沒關係。你的回答是正確的。我沒有用this.subview = new SubView()初始化視圖。一旦我做到了,它的工作。 –