一尘不染

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

angularjs

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

组控制器咖啡

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

usercontroller.coffee

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

错误

错误:参数’GroupController’不是函数,未定义

从文档中,我并没有真正获得模块方法的功能。它是否用密钥“ Webchat”存储我的控制器?

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

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

为避免这种情况,您必须忽略[]

app = angular.module('WebChat');

阅读 242

收藏
2020-07-04

共1个答案

一尘不染

检查代码中引用“
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”需要在路径中加上引号。

2020-07-04