Найти все виды определенного типа, отображаемые в настоящее время в BackboneJS или BackboneLayout

Этот проект использует BackboneJS с BackboneLayout.

Существует довольно сложная иерархия взглядов - в некоторых случаях от четырех до пяти уровней.

У меня есть ситуация, когда я хотел бы, чтобы одно представление вызывало изменение другого представления, но слушатели не являются опцией. (приводит к слишком большому количеству слушателей, убивает память).

Top -> X -> Y
Top -> B -> C -> D -> E

Top является видом верхнего уровня, который имеет один X вид, который имеет несколько Y Просмотры.Top представление также содержит один B вид, который содержит несколько B представления, каждый из которых содержит несколько C представления, каждый из которых содержит несколько D представления, каждый из которых содержит несколько E Просмотры.

Изменение в Y вид должен влиять на все E просмотров, которые в настоящее время оказываются. Это было бы идеально для слушателей, если бы не проблема, упомянутая ранее. Поэтому я ищу альтернативный способ сделать то же самое.

Я думаю о получении Top посмотреть, чтобы найти все его потомки, которые имеют тип E, Или что-то вдоль этих линий. Другие решения тоже приветствуются.

Благодарю.

1 ответ

Да я бы Top вести список всех E экземпляры - это будет просто что-то в коде приложения, может быть в E.initialize()или через ваши собственные методы для добавления / удаления узлов в иерархии вашего представления, если они у вас есть - и это собственный обработчик событий, который прослушивает change события на всех Ys, и повторно отображает Es. Если слушать непомерно дорого Y изменения, вызвать кастом Y-change (или что-то еще) событие на вашем Top из вашего кода приложения в Yи попросите Top прослушать это событие.

Очень легко получить список E-экземпляров, не синхронизированных, но, вот почему слушатели существуют. Пройдите осторожно и убедитесь, что сверху есть крюки в каждой точке вниз B->C->D->E дерево и знает, какие изменения нужно внести в его (по существу денормализованный) список Eэто когда есть изменения.

Другие вопросы по тегам