2012-08-06 86 views
4

在我AngularJS Node.js的基础上appangular-express-blogexpress-coffee有defenition angular.module控制器pic前一个问题:AngularJS表达咖啡资产控制器没有找到

Uncaught ReferenceError: IndexCtrl is not defined 

包括模块相同的顺序角种子:变更单

// 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') 

错误也一样。只有当我在angular.module("myApp"... defenition之前将控制器替换为app.coffee时,它才起作用。当然我重新启动了服务器。

更新:app filecontroller filelayout

回答

4

在CoffeeScript中,编译东西被包裹在一个封闭:

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

现在的index.html找不到变量myController的,因为它是在一个封闭!

改为使用module.controller语法。

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

这将导致您的控制器在任何地方都可见。

+0

这行'angular.module('myApp')。controller'MyController',($ scope) - >'我应该为所有控制器添加?我已经添加了它,但同样的错误。与任何订单应用程序和控制器。所有以'(function(){“use strict”;')开头的文件 – zishe 2012-08-06 14:52:48

+0

如果控制器在模块之前运行错误是'no module:myApp' – zishe 2012-08-06 14:56:26

+0

那么一定要先把应用程序放在那里,然后,应该可以工作 – 2012-08-06 14:58:31