【问题标题】:passing parameters from one presenter to another with GWT-Platform使用 GWT 平台将参数从一个演示者传递到另一个演示者
【发布时间】:2011-09-21 04:13:21
【问题描述】:

我正在尝试将我在演示者上加载的参数传递给另一个演示者,例如来自某个客户的汽车。

最好的方法是什么?使用看门人?有什么例子吗?

PS:我将 DI 与 gin 和 GWT-Platform 框架一起使用。

【问题讨论】:

  • 如果第二个演示者的状态应该是可收藏的,您可以使用prepareFromRequest(PlaceRequest) 来处理参数。在您的第一个演示者中,您使用 PlaceManager.revealPlace(PlaceRequest) 和新生成的包含参数的 PlaceRequest。

标签: gwt gwt-platform


【解决方案1】:

【讨论】:

    【解决方案2】:

    如果你想减少耦合,你应该创建一个自定义事件,CarLoadedEvent 什么的。为此使用 GWTP 插件,效果很好。 然后让想要捕捉该事件的演示者实现 CarLoadedHandler,并在其 onBind() 方法中,使其注册到 eventBus:

    @Override
    受保护的无效 onBind() {
    super.onBind();
    registerHandler(getEventBus().addHandler(CarLoadedEvent.TYPE, this));
    }

    最后,当汽车被加载时,触发一个事件:

    CarLoadedEvent.fire(getEventBus(), myLoadedCar);

    【讨论】:

    • 与 Mikael 同意。我的代码中有几个示例,位于客户端包中的github.com/dartmanx/mapmaker/tree/0.5.2。我也使用了 GWT 平台。
    • 如果我的其他演示者还不可见,我该怎么做?
    • 哈哈,我没这么看!在下一个演示者尚未实例化的情况下,我只需将汽车的 ID 作为 URL 参数传递(请参阅 z00bs 对您问题的评论),并将汽车请求发送到服务器。
    • 哈哈,是的,我没有正确解释我的问题,我只是不想多次加载它..您还有其他建议吗?
    • 我决定通过 PlaceRequest 传递 id 并且它起作用了,并且考虑其他事情,比如保持对象更新,我将使用这种方式。好吧,就像没有人说什么一样,我会投票给唯一的答案。谢谢你 mikael-couzic。
    【解决方案3】:
    猜你喜欢
    • 2011-11-27
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    • 1970-01-01
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多