Mate Framework - Проверьте данные перед удаленным вызовом - PullRequest
1 голос
/ 09 мая 2009

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

Ответы [ 2 ]

5 голосов
/ 09 мая 2009

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

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

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

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

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

0 голосов
/ 08 июля 2009

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

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

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

...