【发布时间】:2015-02-03 12:28:24
【问题描述】:
目前我们正在创建一个新的网络应用基础设施。
我们最初加载一个仪表板,它本质上是显示登录用户和菜单集的顶部栏。单击每个菜单将在主要部分加载一个屏幕(主要是杂物屏幕)。我们计划将每个 crud 屏幕及其组件(服务、控制器等)放在一个单独的模块中,该模块将彼此封装所有屏幕,例如,如果有 78 个屏幕,则每个屏幕将有 78 个单独的模块.我们也在计划使用 Requirejs 来动态加载这些依赖项。
然而问题出现了,我们需要将菜单与每个屏幕的每个模块链接起来。通常在基于单个模块的应用程序中会这样做。
config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/Book/load', {
templateUrl: 'book.html',
controller: 'BookController'
})
.when('/Screen/load', {
templateUrl: 'chapter.html',
controller: 'ChapterController'
});
BookController 和 ChapterController 在 SAME 模块中的位置。
然而,在我们的例子中,BookController 将位于图书屏幕的 BookModule 中,同样适用于 ChapterController。并且路由将位于初始主模块中,例如 AppModule,它在启动期间最初加载仪表板。
例如,如何将 AppModule 和路由与每个屏幕的每个模块(例如在本例中为 BookController 和 ChapterController)链接起来,记住我们需要在需要时使用 requirejs 动态加载模块。
(P.S :我们本质上是根据功能对我们的应用程序进行细分,其中我们系统中的功能通常等于屏幕)
此外,我们非常感谢您对我们可以最好地构建我们的应用程序的任何其他方式提出任何建议,包括对上述问题的回答。
问候, 米琳达
【问题讨论】:
-
您可能会发现angular-require-lazy(或其一些概念)很有帮助。
-
最佳实践是按 FEATURE 来构建您的 Angular 文件,这意味着您的 Dashboard 应用程序中的所有控制器、服务和其他必须位于一个位置。恕我直言,以您想要的方式构建文件是不好的
标签: javascript angularjs web-applications requirejs