Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GWTP-清除演示者数据_Gwt_Gwtp_Gwt Platform - Fatal编程技术网

GWTP-清除演示者数据

GWTP-清除演示者数据,gwt,gwtp,gwt-platform,Gwt,Gwtp,Gwt Platform,清除演示者数据的建议方法是什么?我想在登录时清除我的UI 作为当前问题的一个示例,我有一个NestedPresenter,用于收集表单数据。有人可以注销,然后另一个用户可以在浏览器会话仍处于活动状态时重新登录,并且当表单显示时,前一个用户的数据仍在显示 有什么建议吗?这在很大程度上取决于您在应用程序中使用的导航。如果您使用PlaceManager在几乎无状态的屏幕之间导航,我最推荐的方法是覆盖onReset方法,因为每次导航都会将用户定位到演示者,您的清除代码将被执行 onReset() 这发

清除演示者数据的建议方法是什么?我想在登录时清除我的UI

作为当前问题的一个示例,我有一个NestedPresenter,用于收集表单数据。有人可以注销,然后另一个用户可以在浏览器会话仍处于活动状态时重新登录,并且当表单显示时,前一个用户的数据仍在显示


有什么建议吗?

这在很大程度上取决于您在应用程序中使用的导航。如果您使用PlaceManager在几乎无状态的屏幕之间导航,我最推荐的方法是覆盖
onReset
方法,因为每次导航都会将用户定位到演示者,您的清除代码将被执行

onReset()

这发生在每个用户的导航请求结束时。例如 如果用户导航到演示者时需要执行某些代码 已经绑定,已经添加到槽中,这是 需要被覆盖。不过要小心,这经常被称为 在这个方法中不应该执行太重的操作

清除视图,然后获取新模型。如果onReset对您来说太频繁-请坚持使用
onReveal()

onReveal()

在显示演示者时将调用onReveal()。在里面 GWTP的词汇表,这意味着将演示者添加到插槽时 因此,这并不一定意味着对象是可见的 在DOM中。请参阅本期以了解歧义的消除。这 当您想要更新服务器上的某些内容时,应该重写 将要添加到插槽中的演示者


如果onReveal在您的情况下不起作用(您始终将演示者插入插槽+导航请求不起作用)-只要在每次隐藏演示者时清除信息,方法是覆盖
onHide()

,谢谢您的回答。在我看来,您建议在适当的时候进行一些自定义数据清理,同时连接到gwtp生命周期。我对这种方法的担忧是,它是一个维护难题,而且容易出错。每次我引入新功能,例如新数据或有条件显示的元素时,我都有更新自定义clear data方法的额外任务。好吧,您将这种方法放在视图中,并在presenter生命周期的某个地方调用它。GWTP afaik中没有数据绑定,因此在设置模型时,只有您知道在视图中填充了什么。在这些情况下,我们通常做的是:1。在out视图和ViewImpl中创建一个方法setModel(SomeJavaPojo model){},然后创建另一个方法clear(),该方法可以调用setModel(new SomeJavaPojo())来填充默认值。另外,请记住,onReset将级联到较小的PresenterWidget中,因此,如果您的代码粒度很好,那么对mantain来说就不会那么复杂了