2013-03-20 3 views
3

Я пытаюсь преобразовать приложение в Магистральную Магическую линию и нахожусь в задаче рендеринга коллекции элементов, каждая из которых содержит несколько подкатегорий.Рендеринг коллекции с несколькими подкаталогами

Предыстория:

Я работаю над адресной книги приложение, в основном для собственного назидания, но и с надеждой использования другим. На главном экране этого приложения отображается список контактов пользователя. Каждый из этих контактов представлен представлением с одной моделью, поддерживающей его. Каждая из этих моделей имеет дополнительную реляционную информацию, хранящуюся в виде коллекции на свойстве модели. То есть номера телефонов и адреса электронной почты хранятся в виде коллекции на каждом контакте. Эти отношения вернулись к Backbone Relational, и это хорошо.

Проблема:

Моя первая мысль при попытке преобразовать вид контакта с Backbone.View для кукольного было использовать Backbone.Marionette.CompositeView, но композиционный вид занимает только одну коллекцию. Каков правильный способ визуализации повторяющегося элемента с несколькими коллекциями?

+0

ли они на самом деле должны быть коллекции? Этот подход звучит немного завышенным. Есть ли конечная точка API для телефонных номеров? Действительно ли они хранят базовые модели или просто примитивы Javascript? –

+0

Это на самом деле Магистральные модели. Есть дополнительная информация по каждому из них, иначе они просто будут полями непосредственно на родительской модели. Я уверен, что нужно больше корректировать мой образ мышления о том, как использовать Marionette. –

+0

CompositeView не будет работать по той причине, что вы дали, но вы можете легко создать ItemView, который управляет несколькими экземплярами CollectionView. Это в основном то, что делает CompositeView. –

ответ

4

Я написал сообщение в блоге на подобной проблемой. Ключ состоит в том, чтобы использовать составной вид для рендеринга коллекции и дать ему еще один составной вид в качестве свойства itemView для рендеринга вложенной коллекции.

Рабочий код: http://davidsulc.github.com/backbone.marionette-nested-views/

Сообщение в блоге: http://davidsulc.com/blog/2013/02/03/tutorial-nested-views-using-backbone-marionettes-compositeview/

Код репо: https://github.com/davidsulc/backbone.marionette-nested-views

Примечание: вы также можете увидеть в блоге psot Дерик на вложенных просмотрах http://lostechies.com/derickbailey/2012/04/05/composite-views-tree-structures-tables-and-more/

+0

Это похоже на обычное использование составного представления. Чтобы расширить пример из связанного сообщения в блоге, я хочу отобразить City (это будет часть ItemView CompositeView) и отобразить две коллекции, прикрепленные к этому ItemView, поскольку в этом городе есть коллекция Героев и коллекция злодеев. То есть две различные коллекции. Сделав кучу чтения и возиться с кодом, кажется, что лучший способ - использовать ItemView для города и поместить некоторый код в обратный вызов onRender для этого Города, чтобы создавать и визуализировать Heroes CollectionView, а другой для Villains. –

Смежные вопросы