AngularJS:我如何在多个文件中创建控制器

我试图将我的控制器分成多个文件,但是当我尝试在我的模块注册它们时出现错误:

groupcontroller.coffee

app = angular.module('WebChat', []);
app.controller 'GroupController', ($scope) -> 

usercontroller.coffee

app = angular.module('WebChat', []);
app.controller 'UserController', ($scope) -> 

错误

错误:参数'GroupController'不是一个函数,没有定义

从文档,我真的不知道模块方法做什么。 它是否使用密钥“网聊”存储我的控制器?

编辑:似乎传递[]创建一个新模块并覆盖前一个

app = angular.module('WebChat', []);

为了防止这种情况,你必须省略[]

app = angular.module('WebChat');

检查代码中引用“GroupController”的其他地方(可能在您的路线中)。 机会是你有它作为一个变量,但是当你在一个模块中声明一个控制器,你必须包装它的报价。 例如:

MyCtrl1() = -> ()
...
$routeProvider.when('/view1', {templateUrl: 'partials/partial1.html', controller: MyCtrl1})

正常工作,因为MyCtrl1是一个变量。 但是,当你在模块中声明控制器时:

app = angular.module('WebChat', []);
app.controller 'GroupController', ($scope) ->
   # ...

$routeProvider.when('/view1', {templateUrl: 'partials/partial1.html', controller: 'GroupController'})

'GroupController'需要路由中的引号。


这是我所做的:

的index.html

<script src="js/angular.js" type="text/javascript" charset="utf-8"></script>
<script src="js/myApp.js" type="text/javascript" charset="utf-8"></script>
<script src="js/myCtrlA.js" type="text/javascript" charset="utf-8"></script>
<script src="js/myCtrlB.js" type="text/javascript" charset="utf-8"></script>

app.js

myApp = angular.module('myApp', [])
myApp.config ($routeProvider) ->
    $routeProvider.when('/a', {controller: 'myCtrlA', templateUrl: 'a.html'})
    $routeProvider.when('/b', {controller: 'myCtrlB', templateUrl: 'b.html'})

myCtrlA.js

angular.module('myApp').controller 'myCtrlA', ($scope) ->
    console.log 'this is myCtrlA'

myCtrlB.js

angular.module('myApp').controller 'myCtrlB', ($scope) ->
    console.log 'this is myCtrlB'

正如你所看到的,如果我有很多控制器的js文件,那也是index.html中的很多脚本元素。
我不知道如何处理。

仅供参考:http://briantford.com/blog/huuuuuge-angular-apps.html
但是这篇文章也没有提到html文件。


我有我的应用程序var definied在我的app.js文件女巫是第一次引用,然后控制器文件,例如FirstCtrl.js。

所以在app.js前

var app = angular.module(...

在FirstCtrl.js中

app.controller('FirstCtrl',
链接地址: http://www.djcxy.com/p/77929.html

上一篇: AngularJS: How do I create controllers in multiple files

下一篇: When is $render() of ngModel called with real data?