2017-08-04 28 views
1

我收到错误:“[$ injector:modulerr]由于:ReferenceError:isUndefined未定义,因此无法实例化模块myApp”。它表明我拼写错误或忘记包含依赖关系。我已经检查过,所有的脚本都包含在内,我所有的拼写都是正确的,我认为我没有留下任何依赖。我有很多其他的控制器结构非常类似于这个没有问题,但现在我最近添加的两个控制器/视图给了我错误。我剔除了所有逻辑,以确保我没有无意中做某事,但仍然没有骰子。我包括它所说的未定义的模块,一个类似的控制器,以及控制器(现在除了console.log以外的所有逻辑都被除去了),这个新视图不起作用。有任何想法吗?获取可怕的模块没有实例化的错误,但一切都显示正确

“未定义” 模块(与许多逻辑的取出为了简洁):

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”,[ “$范围”, “$位置”, '咆哮' ,HeaderCtl]);

基于模块上的类似的工作的控制器:

(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); 

}()); 

最后,逻辑误差模块剥离出来:

(function() { 

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

var signUpController = function($scope) { 

    $scope.formModel = {}; 


    console.log("Woomp!"); 
} 

app.controller("signUpController", signUpController); 

}());

+0

是被精缩的文件吗?如果是这样,最后一个是抛出一个错误,因为你需要注入一个数组的对象。 – Hoyen

回答

0

您不能在工厂功能内注入角度为module作为注射剂。在loginController中,您已注入myApp(模块名称)作为依赖项。这是你的问题的根源。

变化

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

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

嗯。登录控制器工作正常。你说的是将它绑定在那里,并且会让那个控制器变得很好,但把后面的那个弄糟了? – SealHead1

+0

由于您没有跟随任何DI注射点,所以缩小比例可能会受到伤害。 –

相关问题