В моем приложении у меня есть два типа данных: группы, содержащие элементы и сами элементы. Каждому элементу присваивается группа, и пустые группы могут существовать (и должны быть представлены). Это похоже на простой сценарий, но у меня возникли проблемы с поиском информации о том, как настроить модели, представления и ответы JSON в этом случае.Backbone.js: один вложенный ответ JSON или несколько ответов JSON?
Было бы разумно иметь как коллекцию групп, так и коллекцию предметов и включать в себя отдельный URL-адрес JSON для каждого из них? Ответы JSON будет выглядеть, например:
[ { "id": 1,
"name": "Group A"
},
{ "id": 2,
"name": "Group B"
},
{ "id": 3,
"name": "Group C"
} ]
и
[ { "id": 1,
"group_id": 1,
"name": "Item A"
},
{ "id": 2,
"group_id": 1,
"name": "Item B"
},
{ "id": 3,
"group_id": 2,
"name": "Item C"
} ]
В этом случае, как вы справляетесь с асинхронной загрузки двух объектов JSON, которые связаны между собой?
Или, следует ли объединить эти данные на сервере в один ответ JSON? В этом случае, если это возможно, это только один набор (например, группы), связанный с URL-адресом JSON, и является ли его моделью ответственной за создание элементов?
EDIT: в представлении отобразятся несколько групп, причем каждая группа содержит ноль или более элементов.
Спасибо, Уилл. Да, я планирую отображать несколько групп на просмотр с несколькими элементами на группу. Итак, в отношении вашего первого пункта вы предлагаете коллекцию Items, связанную с каждой группой (как [описано здесь] (http://backbonejs.org/#FAQ-nested))? В ответ на ваш второй вопрос, похоже, что у вас есть несколько групп, и несколько коллекций предметов на группу приведут к множеству запросов JSON. Зная, что существует несколько групп для просмотра, влияет ли это на вашу рекомендацию? Или это еще предпочтительнее альтернативы добавления логики для разбора JSON? –
Представление данных будет несколько сетчатым. Фактически, каждая группа будет действовать как bin (вероятно, только стилизованный div), содержащий произвольное количество элементов. –