2009-05-09 4 views
1

Jusqu'à récemment, j'ai utilisé cairngorm comme cadre pour flex. Cependant, dans ce dernier projet, je suis passé à Mate. Cela me déroute encore un peu car je me suis habitué à laisser des données dans le modèle. J'ai quelques composants qui reposent sur le même ensemble de données (collection). Dans le composant, le gestionnaire de création complet envoie un «GiveMeMyDataEvent» qui est intercepté par l'un des mappages d'événements. Maintenant dans cairngorm dans ma classe de commande j'aurais eu un coup d'oeil rapide dans le modèle pour décider si j'ai besoin d'obtenir les données du serveur ou pas et alors ai retourné les données du modèle ou ai appelé le DB. Comment ferais-je cela dans Mate? Ou y a-t-il une meilleure façon d'y parvenir, j'essaie d'utiliser les données qui ont déjà été reçues du serveur, mais en même temps je ne suis pas sûr d'avoir chargé les données ou non. Si un composant qui utilise ces mêmes données a été instancié, la réponse est oui sinon non. Toute aide/conseils grandement appréciés.Mate Framework - Vérifier les données avant de faire un appel à distance

Répondre

5

La plupart des choses dans Mate sont indirectes. Vous avez des gestionnaires qui gèrent vos données et vous configurez des injecteurs (qui sont des liaisons) entre les gestionnaires et vos vues. Les injecteurs s'assurent que vos vues sont synchronisées avec vos gestionnaires. De cette façon, les vues ont toujours les dernières données. Les vues ne sont pas mises à jour en tant que direct conséquence de l'envoi d'un événement, mais en tant que conséquence indirecte. Lorsque vous voulez charger de nouvelles données, vous distribuez un événement qui est intercepté par une carte d'événements, qui à son tour appelle un service, qui charge des données et les renvoie à la carte d'événements, et la carte d'événements l'insère dans la carte appropriée. directeur. Lorsque le gestionnaire est mis à jour, les injecteurs s'assurent que les vues sont mises à jour. En utilisant des injecteurs, vous avez toujours les données les plus récentes dans vos vues, donc si les vues ont des données, les données sont chargées - sauf si vous avez besoin de mettre à jour périodiquement, auquel cas c'est à vous de déterminer si les données est obsolète et envoie un événement qui déclenche un appel de service, ce qui déclenche une mise à jour, ce qui déclenche l'injection par les injecteurs des nouvelles données dans les vues. Donc, en bref, la réponse à votre question est que vous devez vous assurer que vous utilisez correctement les injecteurs. Si c'est une réponse de trop haut niveau pour vous, je sais que vous pouvez obtenir plus d'aide dans le Mate forums.

0

Je me suis retrouvé dans une situation similaire avec l'application sur laquelle je travaille en ce moment, et j'ai trouvé qu'il est facilement implémenté dans Mate lorsque vous commencez à penser à deux événements.

Le premier événement étant quelque chose comme DataEvent.REFRESH_MY_DATA. Cet événement est géré par un DataManager qui peut décider de l'ignorer (puisque les données sont déjà présentes dans le client et considérées comme à jour), ou le gestionnaire peut envoyer un événement tel que DataEvent.FETCH_MY_DATA. L'événement FETCH_MY_DATA déclenche un appel de service dans la mappe d'événements, qui met à jour une valeur dans le gestionnaire. Cette mise à jour est la propriété injectée dans la vue, les jours heureux :)

Questions connexes