2017-06-05 26 views
0

下面的代码工作正常,在我的本地开发环境,但是当我有托管的服务器我得到以下错误的解决方案,使用unminified JS我收到以下错误后:

angular.js:66 Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to: 
    ReferenceError: shallowCopy is not defined 

下面是相关的代码,我的index.php文件在内的所有文件和文件app.js被注入我的指令:

的index.php:

<!-- bootstrap/jquery --> 
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"> 

<script src="js/jquery/jquery-3.1.1.min.js"></script> 
<script src="js/jquery/jquery-ui.min.js"></script> 
<link rel="stylesheet" href="styles/jquery/jquery-ui.min.css" /> 

<link rel="stylesheet" href="styles/bootstrap-3.3.7-dist/css/bootstrap.css" /> 
<script src="styles/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script> 
<script src="plugins/Bootstrap-3-Typeahead-master/bootstrap3-typeahead.min.js"></script> 
<!-- end bootstrap/jquery --> 
<!-- custom css --> 
<link rel="stylesheet" href="styles/styles.css" /> 
<!-- end custom css --> 
<!-- favicon --> 
<link rel='shortcut icon' type='image/x-icon' href='media/images/favicon.ico' /> 
<!-- end favicon --> 

<!-- custom js --> 
<script src="js/main.js"></script> 
<!-- end custom js --> 

<!-- angularjs --> 
<script src="js/angularjs/angular.min.js"></script> 
<script src="js/angularjs/angular-route.min.js"></script> 
<script src="js/angularjs/angular-sanitize.js"></script> 

<script src="js/app.js"></script> 
<script src="js/login/login.js"></script> 
<script src="js/questionnaire/questionnaire.js"></script> 
<script src="js/study/study.js"></script> 
<script src="js/result/result.js"></script> 
<!-- end angularjs --> 
<div class="row" ng-app="app" > 
    <div ng-view> 
    </div> 
</div> 

app.js:

// app.js 
(function() { 

    "use strict"; 

    // Creating the Module 
    angular.module("app", ["ngRoute", "ngSanitize"]) 
    .config(function ($routeProvider) { 
     //$location.path('/questionnaire'); //logged in already, session still active 

     $routeProvider.when("/", { 
     controller: "loginController", 
     controllerAs: "vm", 
     templateUrl: "views/login.php" 
     }); 

     $routeProvider.when("/questionnaire/", { 
     controller: "questionnaireController", 
     controllerAs: "vm", 
     templateUrl: "views/questionnaire.php" 
     }); 

     $routeProvider.when("/questionnaire/:survey", { 
     controller: "questionnaireController", 
     controllerAs: "vm", 
     templateUrl: "views/questionnaire.php" 
     }); 

     $routeProvider.when("/study/:studyid", { 
     controller: "studyController", 
     controllerAs: "vm", 
     templateUrl: "views/study.php" 
     }); 

     $routeProvider.when("/result/", { 
     controller: "resultController", 
     controllerAs: "vm", 
     templateUrl: "views/result.php" 
     }); 

     $routeProvider.otherwise({ redirectTo: "/" }); 

    }); 

})(); 
+0

替换代码使用未缩小版本的AngularJS,Router等可能会给你一个更有帮助的错误信息。试一试。 – Olezt

+0

@ Olezt我现在使用unminified js后出现以下错误。 angular.js 66未捕获的错误:[$喷油器:modulerr】无法实例化模块的应用程序,因为: 的ReferenceError:shallowCopy是没有定义 – vector

回答

0

这可能是JS微小的问题,裁判https://docs.angularjs.org/guide/di#implicit-annotation

尝试以下,注意['$ routeProvider ...:

与此

(function() { 

    "use strict"; 

angular.module("app", ["ngRoute", "ngSanitize"]) 
    .config(['$routeProvider', function ($routeProvider) { 
     //$location.path('/questionnaire'); //logged in already, session still active 

    $routeProvider.when("/", { 
    controller: "loginController", 
    controllerAs: "vm", 
    templateUrl: "views/login.php" 
    }); 

    $routeProvider.when("/questionnaire/", { 
    controller: "questionnaireController", 
    controllerAs: "vm", 
    templateUrl: "views/questionnaire.php" 
    }); 

    $routeProvider.when("/questionnaire/:survey", { 
    controller: "questionnaireController", 
    controllerAs: "vm", 
    templateUrl: "views/questionnaire.php" 
    }); 

    $routeProvider.when("/study/:studyid", { 
    controller: "studyController", 
    controllerAs: "vm", 
    templateUrl: "views/study.php" 
    }); 

    $routeProvider.when("/result/", { 
    controller: "resultController", 
    controllerAs: "vm", 
    templateUrl: "views/result.php" 
    }); 

    $routeProvider.otherwise({ redirectTo: "/" }); 

}]); 

})(); 
+0

感谢您的答复,我使用上面的代码我的应用程序仍然得到同样的错误.js文件。 – vector

+0

嗯,我很确定这是关于缩小,压缩,丑陋或有关的东西。上面的代码是我认为可能的唯一的事情就是这样。你应该在你的项目中寻找另一个地方,并在这里做同样的事情 –

+0

我不得不使用缩小的路线和非微小的angularjs。谢谢你们的帮助! – vector

相关问题