2012-08-06 87 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