【发布时间】:2016-05-12 21:19:47
【问题描述】:
清除演示者数据的推荐方法是什么?我想在登录时清除我的 UI。
作为当前问题的一个例子,我有一个 NestedPresenter 用于收集表单数据。某人可以注销,然后另一个用户可以在浏览器会话仍处于活动状态时重新登录,当表单显示时,前一个用户的数据仍在显示。
有什么建议吗?
【问题讨论】:
标签: gwt gwtp gwt-platform
清除演示者数据的推荐方法是什么?我想在登录时清除我的 UI。
作为当前问题的一个例子,我有一个 NestedPresenter 用于收集表单数据。某人可以注销,然后另一个用户可以在浏览器会话仍处于活动状态时重新登录,当表单显示时,前一个用户的数据仍在显示。
有什么建议吗?
【问题讨论】:
标签: gwt gwtp gwt-platform
这在很大程度上取决于您在应用程序中使用的导航。如果您使用 PlaceManager 在几乎无状态的屏幕之间导航 - 覆盖 onReset 方法是我最推荐您的地方,因为每次导航将用户带到演示者 - 您的清晰代码将被执行。
onReset()
这发生在每个用户的导航请求结束时。例如 如果用户导航到演示者时需要执行一些代码 已经绑定,已经添加到 Slot,这是 需要被覆盖。不过要小心,这经常被调用,所以 在这种方法中不应该执行任何太重的操作。
清除视图,然后获取新模型。如果 onReset 对您来说过于频繁 - 请坚持使用 onReveal() 然后
onReveal()
onReveal() 将在 Presenter 被显示时调用。在 GWTP 的词汇表,这意味着当一个 Presenter 被添加到一个 Slot 时 因此,这并不一定意味着该对象将是可见的 在 DOM 中。请参阅此问题以了解歧义。这个 当一个人想要更新某些东西时应该被覆盖 即将添加到插槽时的演示者。
如果 onReveal 在您的情况下无法正常工作(您始终将演示者插入插槽 + 导航请求无关紧要) - 只需在每次隐藏演示者时清除信息,通过覆盖 onHide()
【讨论】: