После fetch на выходе Array, а не Collection
Добрый день.
Приложение на Marionettejs + backbone-relational, построил связь между моделями, гружу по fetch вот такой json:
{
"id": 7,
"title": "Анкета 1",
"items": [
{
"id": 6,
"order": 1,
"title": "пунктик намба уан",
"html": "хтмл 1",
"sample_html": "пример хтмл 1",
"questions": [
{
"id": 1
},
{
"id": 2
},
{
"id": 3
}
]
}
]
}
Проблема в том, что на выходе items у меня создаются как объект Collection, а questions - обычным массивом. Разумеется, у меня возникают проблемы с тем, чтобы все это корректно отображать через марионетку. Во вьюшках я просто пытаюсь заполнить коллекцию вьюшки через получение атрибута модели, без инициализации коллекции: // Я делаю так this.collection = this.model.get( "questions" ); // Если делать так, что, разумеется, все работает, но дерево модели не обновляется автоматом // this.collection = new questions_collection( this.model.get( "questions" ) ); Вопрос: как-то можно жестко задавать, что при fetch все массивы интерпретировать как Backbonoe.Collection? Разумеется, без ручного парсинга. |
Коллекция, это по сути контейнер в котором много одинаковых моделей.
Мне непонятно, выше приведенный json это единичный item или это по вашему "коллекция"? |
Переопредели у класса модели метод parse
parse: function(attrs, options) {
if (_.isArray(attrs.items)) {
attrs.items = new YourClassCollection(attrs.items);
}
return attrs;
}
Если вложенность то допиши и таки обработка и для вложенных моделей. |
| Часовой пояс GMT +3, время: 07:01. |