gpt4 book ai didi

java - GWT 单例小部件在注入(inject)后从 DOM 中删除

转载 作者:行者123 更新时间:2023-12-02 03:09:50 26 4
gpt4 key购买 nike

我有一个共享的 GWT 小部件“HeaderView”,它是所有 View 的标题。我通过 GIN 实例化它 -

bind(HeaderView.class).asEagerSingleton();

然后我可以像这样注入(inject)我的 View -

@Inject
public DashboardViewImpl(HeaderView headerView) {
this.headerView = headerView;
initWidget(dashboardViewUiBinder.createAndBindUi(this));
}

第一次显示 View 时效果很好。但是,如果我更改位置,然后返回到“HeaderView”不再可见时已显示的 View 。检查 HTML 显示它不再附加到 DOM。

我的 View 被绑定(bind)为单例 -

bind(DashboardView.class).to(DashboardViewImpl.class).in(Singleton.class);

我假设由于只允许小部件有一个父级,因此在加载下一页后 HeaderView 将从 DOM 中删除。

是否有在 GWT 应用程序中的所有 View 之间共享小部件的正确方法?

最佳答案

首先,编译器非常擅长优化代码,因此制作一个小部件单例不会在代码大小方面节省太多。它确实提高了性能,但除非小部件非常复杂,否则不会明显。

在您的情况下,标题不应成为任何 View 的一部分。您应该将其直接添加到您的应用程序小部件中,即添加到 RootPanel 中的小部件。然后您的“ View ”将占据浏览器窗口的剩余部分。当用户从一个 View 导航到下一个 View 时,您仍然可以告诉标题需要了解什么。

关于java - GWT 单例小部件在注入(inject)后从 DOM 中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41209598/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com