![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jun 2007
Сообщений: 374
|
Допустим, вьювер должен реагировать на изменение 3х моделей, которые находятся непонятно где, например:
AppGlobal.model.resources.model1 AppGlobal.model.playground.user.item.model2 AppGlobal.model.model3 Для решения этой задачи вытащил из flex ChangeWatcher, но у него есть минус - при изменении имени какого-либо свойства из цепочки, он перестает работать, не ругаясь при этом. BindingUtils.bindSetter(this._setModel1, AppGlobal.model, ["resources","model1"], false,true); BindingUtils.bindSetter(this._setModel2, AppGlobal.model, ["playground","user","item","model2"], false,true); BindingUtils.bindSetter(this._setModel3, AppGlobal.model, ["model3"], false,true); Как вы решаете в целом проблему подписки на события таких моделей? |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 374
|
alatar, так не известно, создались ли модели или нет. Если бы была гарантия 100% существования нужного свойства нужной модели, то проблемы бы не возникало. Их создают другие контроллеры, никак с этим вьювером не связанные.
|
|
|||||
|
.
|
Подписываю представление(я) на события создания дочерних моделей в родительских моделях. Можно подписаться к общему узлу, имеющим в своих ветках нужных родителей. Событие добавления/удаления доставляется к этому узлу баблингом.
|
|
|||||
|
Цитата:
Цитата:
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
.
|
Цитата:
Сложнее хотите? Давайте применим AbstractFactory. По типу модели выдадим тип представления. Полный консенсус. ) |
|
|||||
|
Цитата:
|
|
|||||
|
Регистрация: Jun 2007
Сообщений: 374
|
dimarik, а как баблинг реализуете в моделях? Своя событийная модель?
Если подписывать все на создание всего, особенно при сильных уровнях вложенности, можно здорово запутаться. alatar, (что тут писать, если нечего подписывать?).addEventListener(...) И в какой момент подписывать. |
|
|||||
|
.
|
Да, своя реализация, с помощью EventDispatcher'а. Почти своя, если учесть что DOM адоб реализовал только для дисплей-листа. Мой велосипед - конгломерат модернизации идей BloodHound'а и исследования поведения нативного EventDispatcher. Эта штука просто реализует GoF паттерн Composite. Хочу разродится в скором времени статейкой в своем бложике по этому поводу.
|
|
|||||
|
Цитата:
Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 10:39. |
|
|
« Предыдущая тема | Следующая тема » |
|
|