【发布时间】:2015-06-17 09:13:28
【问题描述】:
我正在使用 AngularJS 构建一个相当大的单页 Web 应用程序,并且我正在尝试找到使其非常模块化的最佳方法。
我正在使用ngRoute 构建我的路线,我的app.js 包含:
...
app.config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/stats', {
templateUrl : 'views/stats.html',
controller : 'StatController'
})
...
为了使其正常工作,我需要在我的主要 index.html 文件中包含我的 StatController 以及包含 app.js。
<script src="/js/StatController.js"></script>
当我只包含 1 或 2 个控制器时似乎是合理的,但如果我有 30 个控制器呢?我是否仍然需要将它们全部包含在我的 index.html 页面中,或者 Angular 是否可以仅在需要时(即请求新控制器时)包含它
【问题讨论】:
-
我建议保留一个名为
controllers.js的文件,而不是为每个控制器保留不同的文件。 -
我也在做这样的项目,但我已经把它分开了,用 grunt 来连接 JS 文件。现在,我的 index.html 只有 app.js(不包括库)。对于文件夹结构,我参考了scotch.io/tutorials/…
-
@iJade @VigneswaranMarimuthu 所以
controllers.js文件会变得非常大,有没有更好的方法来模块化它而不必连接文件? -
这可能对link有帮助
-
@matt 当您开发时,它将位于单独的文件中。但是在测试时它将是巨大的。由于您不想在 HTML 中包含这些文件,因此您需要使用一些任务运行器(我使用 GRUNT)将所有 JS 文件连接到一个(称为
app.js)。如果您可以在 HTML 中包含 JS 文件引用,那么您可以查看grunt-usemin以优化这些文件引用
标签: javascript angularjs url-routing