4

angle -express-blogexpress-coffeeに基づく私のAngularJSnode.jsアプリでは、コントローラーの前の定義に問題がありますpicangular.module

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

同じエラー。定義する前にコントローラーを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 に答える