2012-01-25 108 views
0

我有一個骨幹模型,其中包含一個數組,我用一個簡單的ID更新(我不想添加嵌套集合)。對象有一個相當簡單的請求沒有方法

對我來說這似乎相當直接,但由於某種原因,我得到Uncaught TypeError: Object [object Object] has no method 'preshow'錯誤。

我有一個類的列表和一個窗體與輸入的類。 用戶可以單擊班級列表中的項目將其添加爲正在編輯的班級的先決條件。這會在'ClassInput'視圖中觸發'add_prerequisite'。

我遺漏了我認爲可能不需要的代碼。

 
Myapp.ClassInput = Backbone.Views.extend({ 
     initialize: function(){ 
     Myapp.class = this.model; 
     Myapp.class.bind("add_prerequisite", this.add_prerequisite); 
     }, 
     add_prerequisite: function(prerequisite){ 
     // this is a method in my model which adds the prerequisite id to this class 
      class.add_prerequisite(prerequisite) 

     //this is the line triggering the error 
      this.show_pre(prerequisite); 
     }, 

     show_pre: function(prerequisite){ 
      alert(prerequisite); 
     } 

}); 

Myapp.Classes.ClassList = Backbone.Views.extend({ 


    add_prerequisite: function(){ 
     Myapp.class.trigger('add_prerequisite',this.model.id); 
    } 
}); 

回答

1

您需要將add_prerequisite的上下文綁定到您的骨幹模型。

爲了做到這一點,你只需要一個第三個參數添加到綁定方法

initialize: function() { 
    Myapp.class = this.model; 
    //bind the context of this.add_prerequisite to this 
    Myapp.class.bind('add_prerequisite', this.add_prerequisite, this); 
} 
+0

工作就像一個魅力保羅,謝謝。 – pedalpete

相關問題