2012-04-12 8 views
1

"filterMessages is not function"エラーが発生し続けます。ここにBackbone Viewクラスがあります - それがなぜ機能を見つけることができないのか分かりません。ここでバックボーンJavascript - 機能が見つかりませんか?

Firebugの filterMessagesでエラーが ライン152(filterMessages( "すべて")。各(関数(メッセージを)定義されていないのです{

​​

答えて

5

あなたがのコンテキスト内でそれを呼び出すことになるでしょうビュー:それは時にあなたの内側の関数の中で異なった性質がかかりますので

initialize : function() { 

    var self = this; 

    // code here 

    this.collection.on("reset", function(models) { 
     $("div.cameras").empty(); 
     self.filterMessages("all").each(function(message) { 
      var view = new MessageView({model: message}); 
      $("div.cameras").prepend(view.render().el); 
     }); 
    }); 
} 
+0

いいえ、それは動作しませんでした – bluedevil2k

+0

私はスコープを修正するための例を更新しました。 – rjz

+0

はい、そうでした。ありがとう。 JSの厄介な「特徴」。 – bluedevil2k

0

だけで、あなたの内側の関数外の変数として「これを」を定義

primaryFunction : function() { 
    var self = this; 

    innerFunction : function(filterString) { 
     self.someOtherFunction(); 
    }; 
} 
関連する問題