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