2009-05-09 4 views
1

До недавнего времени я использовал cairngorm в качестве рамки для flex. Однако в этом последнем проекте я переключился на Mate. Это меня все еще немного запутывает, так как я привык оставлять данные в модели. У меня есть пара компонентов, которые полагаются на один и тот же набор данных (сбор). В компоненте созданный полный обработчик отправляет 'GiveMeMyDataEvent', который попадает в один из eventmaps. Теперь в cairngorm в моем классе команд я бы быстро заглянул в модель, чтобы решить, нужно ли мне получать данные с сервера или нет, а затем либо возвратил данные из модели, либо назвал db. Как бы это сделать в Mate? Или есть лучший способ сделать это, я пытаюсь использовать данные, которые уже были получены с сервера, но в то же время я не уверен, что загрузил данные или нет. Если компонент, который использует эти же данные, был создан, тогда ответ будет да, иначе нет. Любая помощь/подсказки очень ценится.Mate Framework - проверка данных перед удаленным вызовом

ответ

5

Большинство вещей в Мате косвенно. У вас есть менеджеры, которые управляют вашими данными, и вы устанавливаете инжекторы (которые являются привязками) между менеджерами и вашими представлениями. Инжекторы убеждаются, что ваши взгляды синхронизированы с вашими менеджерами. Таким образом, представления всегда имеют самые последние данные. Представления не обновляются как direct Последствия отправки события, но как непрямые Последствия.

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

Когда менеджер обновляется, форсунки проверяют, обновлены ли представления.

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

Итак, вкратце ответ на ваш вопрос заключается в том, что вам необходимо убедиться, что вы правильно используете инжекторы. Если это слишком высокий ответ для вас, я знаю, что вы можете получить дополнительную помощь в Mate forums.

0

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

Первое событие, являющееся чем-то вроде DataEvent.REFRESH_MY_DATA. Это событие обрабатывается некоторыми DataManager, которые могут решить либо игнорировать его (поскольку данные уже присутствуют на клиенте и считаются обновленными), либо менеджер может отправить событие, например DataEvent.FETCH_MY_DATA.

Событие FETCH_MY_DATA вызывает вызов службы на карте событий, который обновляет значение в менеджере. Это обновление вставляется в представление, счастливые дни :)

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

  • Нет связанных вопросов^_^