我正在为一家拥有 3 家不同公司的公司创建一个网站。因此该域将有 3 个子域,如下所示:
- www.example.com
- firm1.example.com <-> www.example.com/firm1
- firm2.example.com <-> www.example.com/firm2
- firm3.example.com <-> www.example.com/firm3
公司之间不会共享代码。每个公司都有自己的数据库托管在同一服务器上。每个公司都会有一个主页链接,即 www.example.com。
我决定为每个公司创建一个模块和一个将从 main.dart 调用的主模块。现在我如何以及何时调用第二个模块。这样做时,我不理解在 Controller 上使用模块的必要性。
- 在这种情况下模块化应用程序是否正确?
- 拥有多个模块有哪些优势?
- 我们应该为每个模块使用一个路由器吗?我问这个的原因是,将来如果我计划删除firm3并将其放在一个不再与主应用程序粘连的单独域中,那么我将不得不从路由器中删除相应的路由,这不太可能模块化应用程序。
最佳答案
模块用于组合注入(inject)器的一组类型注册。通常,即使您只有一家公司,您也会有多个模块。
看看这个例子:https://github.com/akserg/angular.dart.ui/blob/master/lib/carousel/carousel.dart
这是一个 Carousel 组件,由两个始终一起使用的组件组成,并且依赖于 TransitionModule。
CarouselModule 允许您只需 install(new CarouselModule);
模块与程序逻辑无关,它更多的是用于一次注册一组 Angular 组件、指令、服务……。
Controller 就是关于程序逻辑的。
这三个公司有什么区别? 您可以创建三个不同的应用程序,并将要在包中的这些应用程序之间重用的代码移动,然后从这三个应用程序导入此包。
更新
如果这 3 个应用程序不共享代码,那么将它们放在一个应用程序中就没有意义。 您可以使用您正在使用的 Web 服务器的虚拟目录功能。
您得到的是应用程序之间的依赖关系,这些应用程序没有任何共同点(除了由同一服务器提供服务之外)。
您必须应对代码大小。每个用户加载 3 个应用程序的代码,尽管他想要并且只能使用其中的 1/3。 在 Dart 中,按需加载代码并不是那么容易(至少现在还不是)。
总结:你的方法没有任何优点,而且有严重的缺点。相反,创建三个独立的应用程序。
关于dart - 在 Angular dart 中处理多个模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24857092/