Я пытаюсь вложить представление коллекции в представление модели.Инициализация вложенных коллекций с помощью Backbone
Для того, чтобы сделать это, я Магистральная в кукловодов Composite View и followed that tutorial
В конце концов, он инициализирует вложенное представление коллекции как это:
MyApp.addInitializer(function(options){
var heroes = new Heroes(options.heroes);
// each hero's villains must be a backbone collection
// we initialize them here
heroes.each(function(hero){
var villains = hero.get('villains');
var villainCollection = new Villains(villains);
hero.set('villains', villainCollection);
});
// edited for brevity
});
Как бы вы сделать то же самое без используя addInitalizer от Marionette?
В моем проекте я искажаю данные с сервера. И когда я пытаюсь сделать что-то вроде:
App.candidatures = new App.Collections.Candidatures;
App.candidatures.fetch({reset: true}).done(function() {
App.candidatures.each(function(candidature) {
var contacts = candidature.get('contacts');
var contactCollection = new App.Collections.Contacts(contacts);
candidature.set('contacts', contactCollection);
});
new App.Views.App({collection: App.candidatures});
});
я получаю «indefined варианты», поступающие из коллекции:
App.Collections.Contacts = Backbone.Collection.extend({
model: App.Models.Contact,
initialize:function(models, options) {
this.candidature = options.candidature;
},
url:function() {
return this.candidature.url() + "/contacts";
}
)};
Hi David! Очень приятно получить от вас ответ! Ваш пост действительно замечательный! Я понимаю, что кандидатура уже установлена ... но я не могу получить данные :(Даже модификация по вашему предложению. Контактная модель – user2167526
Извините, я немного неправильно прочитал ваш код. Я обновил свой ответ. –
Спасибо за ответ! Я думаю, что я становлюсь ближе (после 1 недели на этом!). Но теперь, если в кандидатуре View (первый уровень) я делаю console.log (this.model.get ('contacts')), я получаю пустые объекты ... Может быть, какая-то асинхронная вещь мне не хватает :( – user2167526