我在同一个模块中有多个入口点。
例如,我有一个主页入口点和一个管理员
管理页面的入口点。
<entry-point class='com.company.project.client.HomeModule'/>
<entry-point class='com.company.project.client.AdminModule'/>
我现在的设置方式 - 我需要在我的
OnModuleLoad:
if((RootPanel.get("someHomeWidget")!=null)&&
(RootPanel.get("someOtherHomeWidget")!=null))
{
// do the stuff
}
为了在 Home 时不执行 Admin Entrypoint
页面打开,反之亦然。
不做上面的检查还涉及到如果我有一个 div
无论我注入(inject)什么,主页和管理页面中的名称都相同
它在每个人身上出现两次。
这在1000英里外很臭,显然是错误的:什么是正确的
在人们的经验中如何做到这一点?
任何帮助表示赞赏!
最佳答案
正确的方法是每个模块有一个入口点,将适当的小部件粘贴在适当的 div 中:
RootPanel panel = RootPanel.get("someHomeWidget");
if (panel) panel.add(new HomeWidget());
panel = RootPanel.get("adminWidget");
if (panel) panel.add(new AdminWidget());
这样,它只会扫描页面以查找您拥有的任何 div 并插入适当的小部件。因此,您的 HTML 页面决定了何时显示哪些小部件,并且 GWT 代码已准备好处理任何情况。上面没有什么不好的,这是你的入口点应该写的方式。
另一种选择是,如果您的管理区域和通常区域完全不同(例如:您想在不同的时间加载它们),那么它们应该是单独的模块,具有单独的入口点。
关于gwt - 同一模块中有多个入口点的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/929661/