![]() |
Подписка вложенных моделей
Допустим, вьювер должен реагировать на изменение 3х моделей, которые находятся непонятно где, например:
Код AS3:
Для решения этой задачи вытащил из flex ChangeWatcher, но у него есть минус - при изменении имени какого-либо свойства из цепочки, он перестает работать, не ругаясь при этом. Код AS3:
Как вы решаете в целом проблему подписки на события таких моделей? |
Передайте view ссылки на модели, пусть подпишется.
|
alatar, так не известно, создались ли модели или нет. Если бы была гарантия 100% существования нужного свойства нужной модели, то проблемы бы не возникало. Их создают другие контроллеры, никак с этим вьювером не связанные.
|
Подписываю представление(я) на события создания дочерних моделей в родительских моделях. Можно подписаться к общему узлу, имеющим в своих ветках нужных родителей. Событие добавления/удаления доставляется к этому узлу баблингом.
|
Цитата:
|
dimarik, а как баблинг реализуете в моделях? Своя событийная модель?
Если подписывать все на создание всего, особенно при сильных уровнях вложенности, можно здорово запутаться. alatar, (что тут писать, если нечего подписывать?).addEventListener(...) И в какой момент подписывать. |
Цитата:
Цитата:
|
alatar, я уже написал выше. Если всех родителей модели проверять на созданность, делая обработчики всех созданий, то можно получить такую нехилую структуру, что лучше подумать над другими реализациями. Это при глубоких уровнях вложенности.
|
Зачем обработчики? какая структура? Одна строчка, что бы подписаться на событие и одна функция, которая отдиспатчит его выше это уже нехилая структура?
Видимо я не до конца понимаю вашу проблему. |
Цитата:
|
| Часовой пояс GMT +4, время: 08:32. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.