我需要将以下AngularJS application转换为GWT应用程序(尽管该问题适用于任何角度应用程序)。我想按照文档中的建议使用MVC pattern和UiBinder,但我不确定角度应用程序的组件应如何与GWT组件对应。
我已经考虑过了一些想法,这是我的理解 - 如果有人能说我做得对,我会感激
现在我不知道如何将多个演示者放在一起,以便他们创建一个页面。我应该创建一个与 AppController 对应的主视图,然后将该视图的相关部分传递给每个演示者吗?
另外,处理模态对话框的最佳方法是什么?我是否应该将它们包含在视图中,绑定到演示者并最初隐藏它们?
答案 0 :(得分:1)
我建议使用Activities and Places或完全成熟的MVP框架,如GWTP。
关于你的问题:
Presenters
这取决于您使用Activities and Places
还是GWTP
。 GWTP
具有PresenterWidget
的conecept,可以嵌套在Presenters
中。对于Activities and Places
,您可以关注Thomas Broyer的recommendation。
一般来说,我认为Presenters
及其对应的Views
应该是通常与Place
相关联的独立组件。 GWTP
具有Slots
(即侧面导航等)的概念,其中Presenters
可以显示自己。
Presenters
之间的通信应通过EventBus
完成。
GWTP
的概念为PopupPresenters
但通常我认为模态对话框应包含在View
中并由父Presenter
处理(除非它包含许多业务逻辑) 。
答案 1 :(得分:0)
你说:
每个模块都应成为演示者
查看[GWT组织项目] [1] http://www.gwtproject.org/doc/latest/DevGuideOrganizingProjects.html 它讨论了“模块:配置单元”一节中的模块 基本上,模块仅用于配置。每个入口点都需要一个模块。人们通常每页有1个模块。
你说:
每位演示者一个视图
通常就是这种情况。
你说:
必须在AppController中初始化服务并将其传递给相关的演示者(类似于在MVC描述中如何实现eventBus)
就像Ümit所说你应该使用Gin
Ümit推荐GWTP我不是GWTP的专家,但是当我还是初学者的时候我用它很简单而且很难。我不认为这对初学者有好处。不可否认,学习它的投资可能是值得的。就像我说的那样,我不是GWTP的专家。