У меня есть две коллекции экземпляров: элементы и разделы.
Каждый раздел может иметь несколько элементов, и каждый элемент может находиться в нескольких разделах.
Когда я добавляю элемент в раздел, я хочу получить хеш этого элемента и сохранить его в атрибуте массива раздела. Этот атрибут массива используется для определения того, какие элементы отображаются в каждом разделе.
Итак, допустим, что у меня есть ItemListModel со 100 элементами и у меня есть раздел с атрибутом 'items' с массивом [item3_id_hash, item27_id_hash, item59_id_hash]. Когда я отображаю SectionView, я сначала сопоставляю эти хэш-идентификаторы с коллекцией Items, чтобы получить эти объекты, а затем создаю ItemView, который отображает только эти объекты.
Проблема, с которой я столкнулся, заключается в идентификации этих элементов при создании и удалении, чтобы я мог получить их идентификаторы и добавить / удалить их из массива атрибутов section.item.
Я могу придумать хакерское решение для идентификации элемента после добавления, установив глобальную переменную по имени parent. Однако я хочу избежать использования глобалов.
Удаление - это совсем другое дело. Когда пользователь нажимает X, чтобы удалить элемент в представлении, я не могу понять, как я могу идентифицировать модель родительского раздела или, по крайней мере, идентифицировать его идентификатор.
Пример просмотра:
Если пользователь удаляет Item_2 из представления, как я могу получить Section_1.model.get ('id'), чтобы я мог получить объект section_1, а затем удалить 'id' для Item_2 из атрибута массива 'items' в Section_1
Единственное решение, которое я могу придумать, это передать id для Section_1 в представление HTML, когда я рисую ItemsView для Section_1. Это хакерский и хрупкий, поэтому я пытался избежать этого.
FYI: SectionListView создает один или несколько SectionsView, каждый из которых создает один ItemListView, который создает один или несколько ItemView