配合框架 - 在进行远程呼叫之前检查数据

时间:2009-05-09 10:26:09

标签: flex mate

直到最近,我一直在使用cairngorm作为flex的框架。然而,在这个最新的项目中,我已经转向了Mate。它仍然让我感到困惑,因为我习惯于在模型中留下数据。我有几个依赖于相同数据集(集合)的组件。 在组件中,创建完成处理程序发送一个'GiveMeMyDataEvent',它被其中一个事件图捕获。现在在命令类的cairngorm中,我可以快速查看模型,以确定是否需要从服务器获取数据,然后从模型返回数据或调用数据库。 我怎么会在伴侣中这样做?或者有更好的方法来解决这个问题,我正在尝试利用已经从服务器收到的数据,但同时我不确定我是否已经加载了数据。如果已经实例化了使用相同数据的组件,则答案为是,否则为否。 任何帮助/提示都非常感谢。

2 个答案:

答案 0 :(得分:5)

Mate的大部分内容都是间接的。您拥有管理数据的经理,并在经理和您的视图之间设置注入器(它们是绑定)。注射器确保您的视图与您的经理同步。这样,视图始终具有最新数据。视图不会作为调度事件的直接结果更新,而是作为间接结果。

当您要加载新数据时,您将调度由事件映射捕获的事件,事件映射又调用某些服务,该服务加载数据并将其返回到事件映射,事件映射将其粘贴到相应的管理器中

当经理得到更新时,注射器会确保更新视图。

通过使用注入器,您可以保证视图中始终包含最新数据,因此,如果视图中包含数据,则会加载数据 - 除非您需要定期更新,在这种情况下,您需要确定数据是否为陈旧并发送一个触发服务调用的事件,该事件触发更新,触发注入器再次将新数据推送到视图中,并将其四舍五入。

因此,简而言之,您的问题的答案是您需要确保正确使用注射器。如果这对您来说是一个过于高级的答案,我知道您可以在Mate forums获得更多帮助。

答案 1 :(得分:0)

我遇到了与我正在处理的应用程序类似的情况,发现当你开始考虑两个事件时,它很容易在Mate中实现。

第一个事件是DataEvent.REFRESH_MY_DATA。此事件由某些DataManager处理,它可以决定忽略它(因为数据已经存在于客户端中并被认为是最新的),或者管理员可以调度像DataEvent.FETCH_MY_DATA这样的事件。

FETCH_MY_DATA事件在事件映射中触发服务调用,该事件映射更新管理器中的值。这个更新是属性注入到视图中,快乐的日子:)