javascript - 在 AngularJS 中路由时包含 Controller

标签 javascript angularjs url-routing

我正在使用 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 个 Controller 时似乎很合理,但如果我有 30 个 Controller 怎么办?我是否仍然需要将它们全部包含在我的 index.html 页面中,或者 Angular 有没有办法仅在需要时(即请求新 Controller 时)包含它

最佳答案

如果您需要当前 View 上的一些逻辑,每个 View 都附加了一个 Controller 。最佳实践是将应用程序的功能分成小块路由文件。例如,您必须创建一个帐户部分。您可以在其中创建一个 accountRoute.js 模块,例如所以:

angular.module('myModule').config(function ($stateProvider){
.state('someName',{/*add controllers templates here*/})
})

也许还有其他州。 如果您需要创建另一个 future,例如仪表板,您可以创建另一个路由文件 dashboardRoute.js,在其中使用相同的 Angular 模块。这是构建代码的好习惯更干净。 因此,在 dashboardRoute.js 中,您将拥有:

angular.module('myModule').config(function ($stateProvider){
    .state('anotherStateName',{/*add controllers templates here for dashboard feature*/})
    })

所有路由都将注入(inject)同一模块中,因此您可以访问它们。 最后但并非最不重要的一点是,您还应该有一个 app.js 文件,您可以在其中注入(inject)所需的所有模块依赖项、登录路由等。 在我看来,controllers.js 文件很难调试、维护和读取。每个 Controller 应分隔在不同的 .js 文件中,并添加到 index.html 上。 我希望它有所帮助。

关于javascript - 在 AngularJS 中路由时包含 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30887192/

相关文章:

javascript - 根据文本框中的值范围重定向到 iframe 中的 URL

javascript - WordPress 中的 Ajax 调用导致不需要的页面重新加载并中止 fancybox 演示

javascript - AngularJS 引用错误 : module is not defined

javascript - React - 将组件动态加载到页面中

javascript - 来自某个 url 时删除 am 元素

django - 内容类型和表示

javascript - 将 textExtraction 与 jQuery 表排序器一起使用时出现问题

javascript - 为什么 JS 日期差异脚本中缺少大约 30 天

php - AngularJS 和 Laravel 使用什么应用程序结构?

angularjs - 为什么angular.module的configFn不是可选的?