Javascript 向主干中的原型对象添加值不起作用
在主干中,我有一个名为“errors\u dict”的自定义原型对象视图。我想记录下所犯的错误,所以我希望错误能够持续下去。然而,当“下一个阶段”方法运行时,我得到了一个错误,错误没有定义。为什么会这样?当我在nextage方法中本地定义dict错误时,它工作得很好,但是当然,下一次该方法运行时,同一个字典不可用 作为旁注,如果字典不存在(值为1),我如何让它创建一个新键,如果它存在,我如何让它增加1?我知道如何在Python中实现这一点,但我对JS是新手Javascript 向主干中的原型对象添加值不起作用,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,在主干中,我有一个名为“errors\u dict”的自定义原型对象视图。我想记录下所犯的错误,所以我希望错误能够持续下去。然而,当“下一个阶段”方法运行时,我得到了一个错误,错误没有定义。为什么会这样?当我在nextage方法中本地定义dict错误时,它工作得很好,但是当然,下一次该方法运行时,同一个字典不可用 作为旁注,如果字典不存在(值为1),我如何让它创建一个新键,如果它存在,我如何让它增加1?我知道如何在Python中实现这一点,但我对JS是新手 window.View = Backb
window.View = Backbone.View.extend({
mistakes_dict: {},
initialize: function () {
this.render();
},
events: {
"click .nextstage" : "nextstage"
},
nextstage: function () {
var mistakes_string = $("span.highlighted").text();
for(var i = 0, len = mistakes_string.length; i < len; i++){
mistakes_dict[mistakes_string[i]] = 1;
};
},
render: function () {
this.$el.html(this.template(this.model.toJSON()));
return this;
}
});
window.View=Backbone.View.extend({
错误:{},
初始化:函数(){
这个。render();
},
活动:{
单击.nextstage:“nextstage”
},
下一阶段:函数(){
var errors_string=$(“span.highlighted”).text();
for(变量i=0,len=errors\u string.length;i
错误\u dict直接在视图上定义
因此,您需要使用这个上下文来访问它
mistakes_dict[mistakes_string[i]] = 1;
应该是
this.mistakes_dict[mistakes_string[i]] = 1;
您在window.View=Backbone.View.extend({…})
中定义的内容附加到原型,因此您必须通过此
访问它们:
for(var i = 0, len = mistakes_string.length; i < len; i++){
this.mistakes_dict[mistakes_string[i]] = 1;
}
谢谢,这很有道理。
window.View = Backbone.View.extend({
initialize: function () {
this.mistakes_dict = { };
this.render();
},
//...