2012-04-12 53 views
1

我不断收到“filterMessages不是函数”错误。这里是Backbone View类 - 不知道为什么它找不到函数。骨干Javascript - 找不到功能?

这里的 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 2012-04-12 17:43:34

+0

我已经更新了示例来修复范围。 – rjz 2012-04-12 18:09:17

+0

是的,它做到了。谢谢。 JS令人讨厌的“特征”。 – bluedevil2k 2012-04-12 18:23:51

0

只要定义“这个”作为您的内部函数外的变量,因为它将你的内部函数内部时采取了不同的属性

primaryFunction : function() { 
    var self = this; 

    innerFunction : function(filterString) { 
     self.someOtherFunction(); 
    }; 
}