使用GWT-Platform有效地在两个演示部件之间传递参数



我有一个演示者名为ParentPresenter和两个presentwidgets, childpresententer1和childpresententer2。

ParentPresenter同时包含了childpresententer1和childpresententer2。ChildPresenter1有超过1000个随机复选框,用户可以选择/取消选择其中的任何一个。

当用户点击"Save"(它位于ChildPresenter2中)后,ChildPresenter2应该从ChildPresenter1中获得选择/取消选择复选框值的列表。我很困惑ChildPresenter2将如何接收ChildPresenter1数据,

  1. 创建一个事件,该事件将由ChildPresenter1在每个复选框上触发选择/取消选择,ChildPresenter2注册该事件并保持数据更新。但是在ChildPresenter1上看到1000+选择/取消选择是一个好的解决方案吗?
  2. 当ChildPresenter2"Save"被按下时,它触发一个事件,ChildPresenter1监听它,准备所有数据并从ChildPresenter1中触发一个带有数据的事件,该事件将由ChildPresenter2处理以获取数据。这听起来很傻,不是吗?

请建议我该如何处理这件事?

我建议如下:

选择状态/数据和处理逻辑应该放在ParentPresenter中。

ParentPresenter {
    List<String> selectedIds
}

在ChildPresenter1中,每当选择状态发生变化时,触发事件来通知选择的变化(带有已选择或未选择的id)。ParentPresenter将监听这个事件,并相应地更新它的selectedIds。

在childpresententer2中,每当"保存"按钮被按下时,触发一个SaveEvent,它也被ParentPresenter侦听。一旦ParentPresenter接收到这个事件,它就可以处理所有必要的信息(selectedIds)。

相关内容

  • 没有找到相关文章

最新更新