主干Javascript-未找到函数?
我一直得到一个过滤器消息不是一个函数错误。这里是主干视图类-不知道为什么它找不到函数主干Javascript-未找到函数?,javascript,backbone.js,Javascript,Backbone.js,我一直得到一个过滤器消息不是一个函数错误。这里是主干视图类-不知道为什么它找不到函数 primaryFunction : function() { var self = this; innerFunction : function(filterString) { self.someOtherFunction(); }; } 这是Firebug中的错误 未定义筛选器消息 第152行FilterMessageAll.eachfunctionmessage{
primaryFunction : function() {
var self = this;
innerFunction : function(filterString) {
self.someOtherFunction();
};
}
这是Firebug中的错误
未定义筛选器消息
第152行FilterMessageAll.eachfunctionmessage{
MessageListView = Backbone.View.extend({
defaults : {
filterString : "all"
},
initialize : function() {
this.collection.on("add", function(model) {
var view = new MessageView({model: model});
$("div.cameras").prepend(view.render().el);
});
this.collection.on("remove", function(model) {
var ID = model.id;
$("#message-" + ID).parent("div.message").remove();
});
this.collection.on("reset", function(models) {
$("div.cameras").empty();
filterMessages("all").each(function(message) {
var view = new MessageView({model: message});
$("div.cameras").prepend(view.render().el);
});
});
},
setFilter : function(filterString) {
this.filterString = filterString;
this.collection.reset(this.collection);
},
filterMessages : function(filterString) {
return this.collection.filter(function(model){
if (filterString == "all")
{
return true;
}
else if (filterString == "active")
{
return model.get("ignore") == "0";
}
else if (filterString == "ignore")
{
return model.get("ignore") == "1";
}
else if (filterString == "flag")
{
return model.get("flag") == true;
}
});
}
});
您需要在视图的上下文中调用它:
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);
});
});
}
您需要在视图的上下文中调用它:
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);
});
});
}
只需将其定义为内部函数外部的变量,因为它在内部函数内部时将采用不同的属性
primaryFunction : function() {
var self = this;
innerFunction : function(filterString) {
self.someOtherFunction();
};
}
只需将其定义为内部函数外部的变量,因为它在内部函数内部时将采用不同的属性
primaryFunction : function() {
var self = this;
innerFunction : function(filterString) {
self.someOtherFunction();
};
}
是的,成功了。谢谢。JS的一个恼人的“功能”。是的,成功了。谢谢。JS的一个恼人的“功能”。