2017-08-04 4 views
1

Je reçois l'erreur: "[$ injector: modulerr] Impossible d'instancier le module myApp en raison de: ReferenceError: isUndefined n'est pas défini". Il suggère que j'ai mal orthographié quelque chose ou ai oublié les dépendances incluses. J'ai vérifié et tous mes scripts sont inclus, toute mon orthographe est correcte, et je ne pense pas avoir laissé de dépendances. J'ai beaucoup d'autres contrôleurs structurés de manière très similaire à celui-ci sans problème, mais maintenant deux de mes contrôleurs/vues ajoutés les plus récents me donnent l'erreur. J'ai éliminé toute la logique pour m'assurer que je ne faisais pas quelque chose par inadvertance, mais toujours pas de dés. J'inclus le module qu'il dit est indéfini, un contrôleur similaire qui fonctionne, et le contrôleur (maintenant dépouillé de toute la logique sauf un console.log) pour la nouvelle vue qui ne fonctionne pas. Des idées?Obtenir le module redouté erreur non instanciée, mais tout semble correct

Le module "non défini" (avec un certain nombre de logique souscrite par souci de concision):

var app = angular.module("myApp", ["ngRoute", 'ngAnimate', 'angular-growl', 'ui.select', 'ngSanitize', 'ui.bootstrap', 'ui.bootstrap.datetimepicker']); 

var HeaderCtl = function($scope, $location) { 

    console.log('inside HeaderCtl : ' + $scope.isLoggedIn); 
    $scope.tabSelected = function(tabname) { 

     console.log('Server Parameter :' + $scope.tabname); 
     $location.path("/" + $scope.tabname); 
    } 
} 

app.controller ("HeaderCtl", [ "champ de $", "$ location", 'grognement' , HeaderCtl]);

Le contrôleur de travail similaire basé sur le module:

(function() { 

var app = angular.module("myApp"); 

var loginController = function($scope, $rootScope, $http, $location, myApp, growl) { 

    // $scope.currenttab = $scope.isLoggedIn; 

    $scope.sendDt = function() { 

     $http.post('/login', { 
       username: $scope.user.username, 
       password: $scope.user.password, 
      }) 
      .success(function(user) { 

        $rootScope.isLoggedIn = 'yes'; 

        console.log('successfully logged in and redirecting to :'); 

        $location.path("/"); 

        $http.get('/getnavlist').success(function(list) { 
         if (list !== '0') { // got some menus 
          $rootScope.navlist = list; 
          $location.path("/" + list[0].value); 
         } 
        }); 
       }, 
       function() { 

        console.log('error in logging in'); 
        $rootScope.message = 'user name or password is wrong'; 

        $location.path("#/welcomeLogin"); 
       }); 
    } 

}; 

    app.controller("loginController", loginController); 

}()); 

Enfin, le module de calcul d'erreur de la logique dépouillé:

(function() { 

var app = angular.module("myApp"); 

var signUpController = function($scope) { 

    $scope.formModel = {}; 


    console.log("Woomp!"); 
} 

app.controller("signUpController", signUpController); 

}());

+0

est le fichier en cours minified? Si c'est le cas, le dernier renvoie une erreur car vous devez injecter les objets avec un tableau. – Hoyen

Répondre

0

Vous ne pouvez pas injecter l'angle module comme injectable dans la fonction d'usine. Dans loginController, vous avez injecté myApp (nom du module) en tant que dépendance. C'est la cause première de votre problème.

changement

                //VVVVV//remove this 
var loginController = function($scope, $rootScope, $http, $location, myApp, growl) { 

à

var loginController = function($scope, $rootScope, $http, $location, growl) { 
+0

Hmmm. Le contrôleur de connexion fonctionne bien cependant. Vous dites que cela le lie là-bas et va le faire bien pour ce contrôleur mais gâcher les derniers? – SealHead1

+0

Il est possible que la minification soit douloureuse puisque vous ne suivez aucune anotation par injection de DI. –