J'ai eu cette erreur. J'ai parcouru les réponses postées précédemment mais j'ai toujours le même problème.
index.html p> app.js p> logincontroller.js p> Vérifiez le code et dites-moi où je fais une erreur. P> P>
5 Réponses :
Votre application est définie à l'intérieur de la fonction anonyme. L'application a donc la portée. Essayez de créer une variable d'application globale.
(function(){ app= angular.module('customersApp',['ngRoute']); app.config(['$routeProvider', function ($routeProvider) { $routeProvider. when('/login', { title: 'Login', controller: 'loginController', templateUrl: 'app/views/loginuser.html' }) .when('/logout', { title: 'Logout', templateUrl: 'partials/login.html', controller: 'loginController' }) .when('/dashboard', { title: 'Dashboard', templateUrl: 'app/views/dynamic_table.html', controller: 'loginController' }) .when('/signup', { title: 'Signup', templateUrl: 'app/views/registration.html', controller: 'loginController' }) .otherwise({ redirectTo: '/login' }); }]); }());
aidé, global à Index.js. J'utilise la navigation de navigation, vous ne pouvez donc éliminer aucune fonction anonyme. Browserify les ajoute de toute façon
C'est une bonne leçon sur la portée. Emballage des choses dans des fonctions anonymes ( en bref supprimez la fonction anonyme qui est dans votre Fonction () {...} ()); code>) fera des variables déclarées à l'intérieur de cette fonction invisible à des choses en dehors de la fonction. Je ne passerai pas sur toutes les choses javascript dans cette réponse car il est bien documenté sur de nombreuses autres questions mais essentiellement, c'est votre problème;
app.js code> ou déclarer le < Code> app code> variable en dehors de la fonction. p> p>
Supprimer la fonction anonyme de l'APP.JS J'aime:
var app= angular.module('customersApp',['ngRoute']); app.config(['$routeProvider', function ($routeProvider) { // rest of the code }]);
On dirait que toutes les autres réponses proviennent de personnes sans connaissance des JS angulaires et uniquement de JavaScript. Ils donnent tous la même réponse erronée, ce qui peut faire fonctionner le code, mais introduire une mauvaise pratique.
Emballage de votre code dans une fonction anonyme est bien! P>
Ce n'est pas le problème. Le problème est que vous mettez votre contrôleur dans un fichier séparé, mais vous avez oublié de le mettre dans un module séparé aussi. P>
logiffontroller.js p>
var app= angular.module('customersApp',['ngRoute','customersApp.loginController']);
Mettre le contrôleur dans un fichier séparé avec le même module est bien (tant qu'ils sont liés). Le code fourni par l'OP créera un Réfecteur de référence CODE> car
l'application code> est hors de portée.
Faire cela inutilement obscurcit votre code afin que cela devrait être considéré comme une mauvaise pratique. Il n'y a aussi rien qui indique à l'idée qu'il s'agissait d'un choix de conception délibéré par OP.
avait la même erreur. Dans mon cas, c'était l'ordre des fichiers JavaScript.
Je devais vous assurer qu'Apl.js a été déclaré avant le fichier Service.js (le fichier qui avait une référence à l'application). P>
<script src="app.js"></script> <script src="/Scripts/Service.js"></script>
Pourquoi enveloppez-vous votre code App.js dans une fonction anonyme?
J'ai lu le parcours de Dan Wahlin ... ils ont fait comme ça, donc je suis leur méthode
Ce n'est pas nécessaire. Faire cela est limiter la portée de la variable
app code> uniquement à cette fonction et que vous essayez d'utiliser cela dans un autre fichier. Il suffit de supprimer cette fonction anonyme et il fonctionnera.
Merci, le problème a été résolu mais montre une autre erreur: [$ INJUSTEUR: LEVRUNIVE DEVENNEMENT: DataProvider <- Données
J'ai donné cela dans ma réponse ci-dessous, veuillez supprimer
Data code> Dépendance à partir de vos injections de dépendance du contrôleur. Il y a plus de choses à réparer dans votre code. Alors regardez ma réponse.