Магистраль - не может вызывать метод "каждый" неопределенного

У меня проблема с функцией each.In моей консоли ошибка:

Uncaught TypeError: Невозможно вызвать метод "каждый" неопределенного

window.App = {
 Models: {},
 Views: {},
 Collections: {}
};
window.template = function (id) {
 return _.template($('id' + id).html());
};
App.Models.Table = Backbone.Model.extend({
 defaults: {
 name: 'Table Name',
 },
});
App.Collections.Tables = Backbone.Collection.extend({
 model: App.Models.Table,
 url: 'tables.json'
});
App.Views.Tables = Backbone.View.extend({
 tagName: 'ul',
 initialize: function() {
 this.collection.fetch({reset:true});
 this.collection.on('reset', this.render);
 this.collection.on('add', this.addOne, this );
 },
 render: function () {
 this.collection.each(this.addOne, this);
 return this;
 },
 addOne: function(table) {
 var table = new App.Views.Table({ model: table });
 this.$el.append( table.render().el );
 table.render();
 }
});
App.Views.Table = Backbone.View.extend({
 tagName: 'li',
 initialize: function() {
 this.model.on('destroy', this.remove, this) 
 },
 render: function () {
 this.$el.html( this.model.get('name') );
 return this;
 },
});
var tablesCollection = new App.Collections.Tables(); 
var tablesView = new App.Views.Tables({ collection: tablesCollection });

Я не могу найти ошибку нигде. Мой json файл:

[
 {"name": "Table 1","stts": "redstts","id": 1},
 {"name": "Table 2","stts": "redstts","id": 2},
 {"name": "Table 3","stts": "redstts","id": 3},
 {"name": "Table 4","stts": "redstts","id": 4},
 {"name": "Table 5","stts": "redstts","id": 5}
]

Я хочу отобразить все мои объекты из коллекции, и после этого хочу добавить событие, чтобы добавить следующую таблицу после щелчка. Но мои проблемы - почему это не функция?

1 ответ

Рендер не имеет правильного контекста.

this.collection.on('reset', this.render);
this.collection.on('add', this.addOne, this );

Вам нужно добавить параметр контекста (третий параметр).

this.collection.on('reset', this.render, this);

licensed under cc by-sa 3.0 with attribution.