私は物事に本当に怒っています:
var BoardNumber = Backbone.Model.extend({
defaults: function(){
return {
value: 0,
selected: false
};
},
toggle: function() {
this.save({selected: !this.get("selected")});
}
});
var BoardNumberView = Backbone.View.extend({
tagName: "li",
template: _.template('<div class="boardNumber"><p>{{value}}</p></div>'),
events: {
"click .boardNumber": "toggleDone",
"click .selected": "toggleDone"
},
initialize: function () {
this.listenTo(this.model, 'change', this.render);
},
render: function () {
this.$el.html(this.template(this.model.toJSON()));
return this;
},
toggleDone: function (evt) {
this.model.toggle();
}
});
var NumbersOnBoard = Backbone.Collection.extend({
model: BoardNumber,
toGenerate: 80,
url: "/numbers",
initialize: function(){
var i = this.toGenerate;
while(i--){
this.create({ value: this.toGenerate-i });
}
},
selected: function(){
return this.where({selected: true});
}
});
他に何も必要ないはずです..クリックすると、タイトルにこのエラーが表示されます。それが何であるかわかりません
編集: コレクションと完全なビューを追加しました。注: クリックするとイベント this.render が完全に起動され、そのときだけエラーが起動され、そのモデルのイベント リスナーが消えるようになります。
編集 #2: スタック トレースの場合、Backbone の開発バージョンでは次のように表示されます。
triggerEvents backbone.js:205
Backbone.Events.trigger backbone.js:146
_.extend._onModelEvent backbone.js:933
triggerEvents backbone.js:206
Backbone.Events.trigger backbone.js:147
_.extend.set backbone.js:370