У меня есть JSON-файл, который в основном выглядит следующим образом:BackboneJS - Извлечение коллекции от модели
[
{
"First" : [...]
},
{
"Second" : [...]
},
{
"Third" : [...]
},
]
В моем маршрутизаторе я имею:
this.totalCollection = new TotalCollection();
this.totalView = new TotalView({el:'#subContent', collection:this.totalCollection});
this.totalCollection.fetch({success: function(collection) {
self.totalView.collection=collection;
self.totalView.render();
}});
Теперь у меня есть мой Backbone Модель:
define([
"jquery",
"backbone"
],
function($, Backbone) {
var TotalModel = Backbone.Model.extend({
url: "/TotalCollection.json",
initialize: function(opts){
this.first = new First();
this.second = new Second();
this.third = new Third();
this.on("change", this.fetchCollections, this);
},
fetchCollections: function(){
this.first.reset(this.get("First"));
this.second.reset(this.get("Second"));
this.third.reset(this.get("Third"));
}
});
return TotalModel;
});
and my in my Backbone View Я пытаюсь представить коллекцию (ы):
render: function() {
$(this.el).html(this.template(this.collection.toJSON()));
return this;
}
Но я получаю сообщение об ошибке «Первый не определен» - в чем проблема?
ах хорошо, вот прямо :-) Так что должно быть в модели тоже? и должно быть что-то внутри фигурных скобок {}? – SHT
Ничего не должно быть действительно необходимо внутри колен, если вы не делаете что-то особенное для каждого - иначе вы могли бы так же легко сказать 'this.first = new Backbone.Collection()', и он будет работать так же хорошо. – Stephen
Отлично! Теперь у меня нет ошибок. Пока все хорошо, но данных нет: я добавил свой выбор() к моему вопросу. Может быть, с этим что-то не так? – SHT