После 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, время: 15:42. |