Я Backbone.js n00b и пытаюсь понять это. Я знаю, как визуализировать модель с помощью представления и встроенного шаблонизатора underscore.js. Теперь я пытаюсь сделать коллекцию, и тут я застреваю. Здесь нет сервера, поэтому я ничего не получаю удаленно, просто простая HTML-страница с некоторым JavaScript.
ContinentModel = Backbone.Model.extend({});
ContinentsCollection = Backbone.Collection.extend({
model: ContinentModel,
initialize: function () {
this.continentsView = new ContinentsView;
this.bind("reset", this.continentsView.render);
}
});
ContinentsView = Backbone.View.extend({
el: '#continents',
template: _.template($('#continents-template').html()),
render: function() {
var renderedContent = this.template(this.collection.toJSON());
$(this.el).html(renderedContent);
return this;
}
});
$(function() {
var continentsCollection = new ContinentsCollection();
continentsCollection.reset([{name: "Asia"}, {name: "Africa"}]);
});
Он ломается в строке атрибутов шаблона в представлении, но я не уверен, что именно там мне нужно искать. Должен ли я отображать коллекцию или я полностью упускаю из виду (может быть, коллекции просто группируют объекты, и я не должен рассматривать их как список, который я могу отображать)?
Спасибо за помощь...
reset
, похоже, не запускает функцию рендеринга представления. Любые идеи? 01.11.2011