Вопрос: Документация недостаточна, и я являюсь чем-то вроде новичка - может ли кто-нибудь подтвердить правильный (предполагая, что он есть) способ привязки Backbone.Views к экземплярам Backbone.RelationalModel (из backbone -lational.js) для обновления / рендеринга в дом? Я попробовал несколько разных подходов, основанных на обычной привязке Модель / Представление в Backbone, но без особого успеха.
Предыстория (/ более подробная информация):
Я изучаю веревки с помощью Backbone.js, и мне пришлось многое поднять за последнюю неделю. Если я упускаю что-то очевидное (что весьма вероятно, включая «правильный» способ решения моей проблемы ниже), пожалуйста, позвоните мне.
Я имею дело с REST-интерфейсом, поддерживаемым mongodb (которым я не обладаю полным контролем, или я бы перестроил поведение на стороне сервера), который использует значительные преимущества вложенных словарей, поэтому я мы читали о том, как лучше всего представить это в Backbone (не нарушая при этом великолепную синхронизацию с сервером save () +, предоставляемую Backbone).
Я видел два варианта: магистрально-реляционный и ligament.js .
Я начал с backbone -lational.js, и мне были созданы RelationalModels (замена backbone-реляционного на стандартную модель Backbone) для различных словарей в дереве, которое передается интерфейсом REST. Отношения между ними определены, и консоль, записывающая JSON из каждой модели (в их соответствующих функциях инициализации), показывает, что все они правильно вызываются / загружаются с сервера по команде fetch () на общем уровне сбора.
Итак, все отлично.
Проблема: у меня есть представления, «слушающие» обновления для каждой из этих моделей (и связанные функции, которые должны рендерить шаблоны в DOM), и они никогда не «запускаются» вообще (не говоря уже о рендеринге ...). Основное представление запускается при вызове fetch (), без проблем, загружая модель «верхнего уровня» и отображая ее в dom - но представления, представляющие модели «внешнего ключа» в этой модели «верхнего уровня», никогда не работают (хотя данные ОПРЕДЕЛЕННО загружаются в каждую модель, о чем свидетельствует запись в консоль каждой модели, упомянутой выше).
Любые идеи будут очень, очень признательны.
В прямом ответе Raynos ответ ниже (спасибо Raynos!):
Если бы я определил базовый URL для UpperLevelCollection с UpperLevelModels, существующими в (UpperLevelCollection url) / (UpperLevelModel id) на сервере, как бы я отобразил эти 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"],
}],
}]