2012-08-06 5 views
4

Dans mes AngularJS Node.js app basé sur angular-express-blog et express-coffee J'ai un problème avec defenition angular.module avant les contrôleurs pic:AngularJS express contrôleur café-actifs non trouvé

Uncaught ReferenceError: IndexCtrl is not defined 

L'ordre des modules, y compris les mêmes que dans graine angulaire:

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

Après changement pour cela:

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

Erreur de la même manière. Cela fonctionne seulement quand je remplace des contrôleurs à app.coffee avant angular.module("myApp"... defenition. J'ai redémarré le serveur bien sûr.

Mise à jour: app file, controller file et layout

Répondre

4

En coffeescript, les choses compilées sont enveloppés dans une fermeture:

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

index.html maintenant ne peut pas trouver la variable MyController parce qu'il est dans une fermeture!

Utilisez plutôt la syntaxe module.controller.

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

Cela rendra votre contrôleur visible partout.

+0

Cette ligne 'angular.module ('myApp'). Controller 'MonController', ($ scope) ->' Je devrais ajouter pour tous les contrôleurs? Je l'avais ajouté mais la même erreur. Avec n'importe quelle application de commande et contrôleurs. Tous les fichiers ont démarré avec '(function() {" use strict ";' de toute façon – zishe

+0

Si le contrôleur passe avant le module Erreur 'no module: myApp' – zishe

+0

Bien sûr, assurez-vous de mettre l'application en premier, alors, cela devrait fonctionner –