我在同一个模块中有多个入口点.
例如,我有主页的Home入口点和admin页面的Admin入口点.
我现在安装的方式 - 我需要在我的OnModuleLoad中检查这样的somt:
if((RootPanel.get("someHomeWidget")!=null)&& (RootPanel.get("someOtherHomeWidget")!=null)) { // do the stuff }
以便在主页打开时不执行管理员入口点,反之亦然.
不进行上述检查也涉及如果我在Home和Admin页面中都有一个同名的div,无论我注入的是什么,它都会在每个上面显示两次.
这在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代码已准备好处理任何情况.上面没有什么东西发臭,这是你的入口点应该写的方式.
另一种方法是,如果您的管理区域和通常区域完全不同(例如:您希望在不同时间加载它们),那么它们应该是单独的模块,具有单独的入口点.