Вопрос: Документации мало, а я немного нуб -- может ли кто-нибудь подтвердить правильный (при условии, что он есть) способ привязки Backbone.Views к экземплярам Backbone.RelationalModel (от backbone-relational.js) для обновления/рендеринга в дом? Я пробовал несколько разных подходов, основанных на обычной привязке Model/View в Backbone, но без особого успеха.
Предыстория (/дополнительная информация): я изучаю основы работы с Backbone.js, и за последнюю неделю мне пришлось многому научиться. Если я упустил что-то очевидное (что весьма вероятно, включая «правильный» способ решения моей проблемы, описанный ниже), позвоните мне.
Я имею дело с интерфейсом REST, поддерживаемым mongodb (над которым у меня нет полного контроля, иначе я бы перепроектировал поведение на стороне сервера), который использует преимущества вложенных словарей, поэтому я читайте о том, как лучше всего представить это в Backbone (при этом не нарушая великолепный материал save() + синхронизацию с сервером, который предоставляет Backbone).
Я видел два варианта: backbone-relational и ligament.js.
Я начал с backbone-relational.js и создал RelationalModels (замена backbone-relational для стандартной модели Backbone) для различных словарей в дереве, которые возвращаются интерфейсом REST. Отношения между ними определены, и консоль, записывающая JSON из каждой модели (в соответствующих функциях инициализации), показывает, что все они правильно вызываются/загружаются с сервера с помощью команды fetch() на общем уровне коллекции.
Итак, все отлично.
Проблема: у меня есть представления, «прослушивающие» обновления для каждой из этих моделей (и связанные функции, которые должны отображать шаблоны в домене), и они вообще никогда не «срабатывают» (не говоря уже о рендеринге...). Основное представление срабатывает на fetch(), без проблем, загружая модель «верхнего уровня» и отображая ее в dom, но представления, которые представляют модели «внешнего ключа» в этой модели «верхнего уровня», никогда не делают этого (хотя данные ОПРЕДЕЛЕННО загружаются в каждую модель, о чем свидетельствует ведение журнала консоли для каждой модели, упомянутой выше).
Любые идеи будут очень, очень признательны.
В прямом ответе на ответ Raynos ниже (спасибо, Raynos!): Если бы я определил базовый URL-адрес для коллекции UpperLevelCollection с моделями UpperLevelModel, существующими по адресу (URL-адрес UpperLevelCollection)/(идентификатор модели UpperLevelModel) на сервере, как бы я сопоставить эти коллекции LowerLevelCollections с ключами словаря в одном дампе JSON для каждой модели UpperLevelModel со стороны сервера? Другими словами, может ли использование коллекций в моделях правильно обрабатывать дамп данных с сервера, подобный этому (очевидно, очень упрощенный, но решает проблему) И правильно сохранять/обновлять/синхронизировать его обратно?
[{
"some_key": "Some string",
"labels": ["A","List","Of","Strings"],
"content": [{
"id": "12345"
"another_key": "Some string",
"list": ["A","list","of","strings"],
},{
"id": "67890"
"another_key": "Some string",
"list": ["A","list","of","strings"],
}],
}]