我的问题如下:我有一个 MVP GWT 应用程序,其中包含一个显示数据集的表。有数百个数据集,所以我决定将表格分成几页,每页 20 个结果。我通过 GWT-RPC 服务从服务器加载每个页面,该服务获取页码作为参数。
现在我想执行以下操作:我想保存用户在 History-Token 中看到的表格页面(因此该 token 类似于 TablePlace:page=5),但我不想创建一个新 Activity ,因为 Activity 管理的其他元素(例如,有一个 TreeView)的状态将丢失。在我的例子中,TreeView 的所有项目都关闭了,这不是我想要的。
如果我不触发新的 Places,用户将无法使用浏览器的后退按钮返回他之前访问过的页面。
提前感谢您的帮助。
最佳答案
您会发出一个普通 PlaceController
goTo
来导航到另一个地方,但是在您的ActivityMapper
中,您将返回与以前完全相同的 Activity
实例。在这种特定情况下,ActivityManager
不会停止/启动 Activity ,而是让它运行自己的生活(甚至不发出位置已更改的信号;如果你想要那个,那就让你的 ActivityMapper
在返回之前告诉你的 Activity
。
您可能还会发现 FilteredActivityMapper
和 CachingActivityMapper
对于在稍微不同的地方返回相同的 Activity 很有用,而不会给您自己的映射器带来负担。
关于GWT MVP 在不更改 Activity 的情况下更新 History-Token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9706498/