【问题标题】:Mate Framework - Check data before making remote callMate Framework - 在进行远程调用之前检查数据
【发布时间】:2010-10-24 23:48:36
【问题描述】:

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

【问题讨论】:

    标签: apache-flex mate


    【解决方案1】:

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

    当您要加载新数据时,您调度一个事件,该事件被事件映射捕获,该事件又调用一些服务,该服务加载数据并将其返回给事件映射,事件映射将其粘贴到适当的管理器中.

    当管理器更新时,注入器确保视图已更新。

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

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

    【讨论】:

      【解决方案2】:

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

      第一个事件类似于DataEvent.REFRESH_MY_DATA。这个事件由一些 DataManager 处理,它可以决定要么忽略它(因为数据已经存在于客户端并被认为是最新的),要么管理器可以发送一个像DataEvent.FETCH_MY_DATA 这样的事件。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-20
        • 1970-01-01
        • 2017-01-12
        • 1970-01-01
        • 2011-09-15
        相关资源
        最近更新 更多