4

在我基于angular-express-blogexpress-coffee的AngularJS node.js应用程序中,我在控制器pic之前遇到了定义问题:angular.module

Uncaught ReferenceError: IndexCtrl is not defined

包含模块的顺序与 angular-seed 中相同:

// JS
!= js('lib/jquery-1.7.2.min.js')
!= js('lib/bootstrap.min.js')
!= js('lib/angular.min.js')

!= js('app')
!= js('controllers')
!= js('directives')
!= js('filters')
!= js('services')

更改顺序后:

!= js('controllers')
!= js('app')
!= js('directives')
!= js('filters')
!= js('services')

错误一样。仅当我在定义之前将控制器替换为 app.coffee 时才有效angular.module("myApp"...。我当然重新启动了服务器。

更新:应用文件控制器文件布局

4

1 回答 1

4

在 Coffeescript 中,编译后的东西被包裹在一个闭包中:

//controllers.js:
(function() { function MyController($scope) {} })();

现在 index.html 找不到 MyController 变量,因为它在闭包中!

请改用module.controller语法。

angular.module('myApp').controller 'MyController', ($scope) ->

这将导致您的控制器随处可见。

于 2012-08-06T14:40:37.190 回答