Ссылки на реляционные идентификаторы с помощью backbone.marionette
Я использую backInbonealial includeInJSON: 'id', чтобы включить только идентификаторы связанных моделей, чтобы избежать спама на моей стороне сервера всем деревом объектов. К сожалению, Backbone.Marionette.View по умолчанию предоставляет только атрибуты режима просмотра, возвращаемые toJSON, что означает, что связанные модели больше не доступны в шаблонах представления.
Я понимаю, что мне нужен пользовательский Marionette.View serializeData. Поскольку это понадобится почти для всех моих моделей, я надеюсь решить эту проблему в общем; то есть переопределить serializeData для всех представлений так, чтобы он правильно делал с ссылками на магистральные реляционные идентификаторы.
Есть ли шанс, что кто-то уже сделал это? Я не слишком надеюсь на это, но думаю, что есть другие, которые могли бы использовать это, так что, если ничего больше, это не послужит местом для сброса моего решения после того, как я его закодировал.:)
Любое решение потребует одного из следующих вариантов:
Определите две версии toJSON для моделей, одна из которых использует includeInJSON, а другая всегда рассматривает его как true.
Какой-то способ пробить дыру через ограничение Marionette для шаблонов представлений, используя только атрибуты модели и помощники на основе атрибутов.
1 ответ
У меня есть функциональное решение, использующее вариант № 1, но это такой взлом, что я не могу вынести его публично. По сути, в serializeData я изучаю модель и изменяю отношения до и после вызова toJSON. Не нить безопасно и безобразно, как черт. Надеемся вернуться в ближайшее время и найти правильное решение.