如何为angularjs分离不同文件中的控制器?

Posted

技术标签:

【中文标题】如何为angularjs分离不同文件中的控制器?【英文标题】:How to separate controllers in different files for angularjs? 【发布时间】:2015-09-14 15:28:34 【问题描述】:

我有一个全局 routes 控制器,并想为每个页面模板创建一个额外的控制器。

如下:

var app = angular.module('myapp', ['ngSanitize', 'ngRoute']);

app.config(function($routeProvider)
    $routeProvider
        .when("/test", 
            templateUrl:    "./templates/test.html",
            controller:     "testController"
        )
);

app.controller('test', function() 
    //...
);

问题:如何将控制器移动到它自己的testController.js 文件中?我试过了,但是控制器不再工作了。

如果我将控制器提取到自己的文件中,我必须采取哪些步骤?

    如何从 testController.js 中访问 var app 模块变量? 我是否必须将每个控制器作为新的<script src="js/testController.js"></script> 标记条目包含在我的html 模板中?这会很麻烦,因为我想将我的应用程序拆分为多个控制器,这会导致很多导入。

【问题讨论】:

您可以使用RequireJS来包含其他文件,也许这个博客会有所帮助:sitepoint.com/using-requirejs-angularjs-applications 为什么不将所有 js 文件合并到单个 app.js 中? How to create separate AngularJS controller files?的可能重复 【参考方案1】:

你可以访问app,只需声明它而不需要依赖:

var app = angular.module('myapp');
app.controller("testController", function() 

);

是的,您需要在每个需要它的页面上包含testController.js

【讨论】:

@MedetTleukabiluly -- 我错过了问题的一部分吗? 我的意思是问题太简单了,答案也太简单了 @MedetTleukabiluly -- 所以你投反对票的原因是因为这个问题“简单”?

以上是关于如何为angularjs分离不同文件中的控制器?的主要内容,如果未能解决你的问题,请参考以下文章

如何为不同的项目版本和管理 angularjs 组件

如何为不同的目标设置不同的 .entitlements 文件

如何为不同的配置分离 Makefile 构建输出?

如何为自定义表格视图单元格中的按钮单击获取不同的视图控制器

您如何为 angularjs 可重用组件打包资产?

如何用angularjs控制check box