2016-02-25 55 views
0

我不断收到标题中提到的错误。我曾尝试阅读关于错误的Angular文档,并且似乎我将一切正常。

我有3个模块App.js,planCtrl.js和gservice.js和连接它们像下面

的index.html

<!-- jQuery --> 
<script src="js/jquery.js"></script> 
<!-- Google Libraries --> 
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDvkISJD8ay_X92_2BJxoe1k15ICtGFf5o&libraries=places"></script> 

<!-- Bootstrap Core JavaScript --> 
<script src="js/bootstrap.min.js"></script> 
<script src="https://code.angularjs.org/1.5.0/angular.min.js"></script> 
<script src="https://code.angularjs.org/1.5.0/angular-route.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.0/angular-cookies.js"></script> 
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular-messages.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/1.1.2/ui-bootstrap-tpls.js"></script> 

<script src="js/app.js"></script> 
<script src="js/planCtrl.js"></script> 
<script src="js/gservice.js"></script> 

app.js

var chaloApp = angular 
    .module('chaloApp', [ 
     'planCtrl', 'gservice', 'ngCookies', 
     'ngRoute', 'ngMessages', 'ui.bootstrap' 
    ]); 

plan.js

var planCtrl = angular.module('planCtrl', ['gservice']); 

planCtrl.controller('planController', ['$scope', '$rootScope', '$http', '$cookies', '$location', '$compile', '$uibModal', 'gservice', function($scope, $rootScope, $http, $cookies, $location, $compile, $uibModal, gservice){ 

gservice.js

angular.module('gservice', []) 
    .factory('gservice', ['$scope', '$rootScope', '$http', function($scope, $rootScope, $http){ 

以下是完整的错误,如果需要的细节。

Error: [$injector:unpr] http://errors.angularjs.org/1.5.0/$injector/unpr?p0=<div class="routePages ng-scope" ng-view="">copeProvider%20%3C-%20%24scope%20%3C-%20gservice 
at Error (native) 
at https://code.angularjs.org/1.5.0/angular.min.js:6:416 
at https://code.angularjs.org/1.5.0/angular.min.js:43:7 
at Object.d [as get] (https://code.angularjs.org/1.5.0/angular.min.js:40:270) 
at https://code.angularjs.org/1.5.0/angular.min.js:43:69 
at d (https://code.angularjs.org/1.5.0/angular.min.js:40:270) 
at e (https://code.angularjs.org/1.5.0/angular.min.js:41:1) 
at Object.invoke (https://code.angularjs.org/1.5.0/angular.min.js:41:86) 
at Object.$get (https://code.angularjs.org/1.5.0/angular.min.js:38:460) 
at Object.invoke (https://code.angularjs.org/1.5.0/angular.min.js:41:295) 

一直在努力与这一点点,所以感谢任何帮助。

感谢,

+0

你可以显示你正在加载的脚本的其余部分吗? –

+0

https://docs.angularjs.org/error/$injector/unpr?p0=%3Cdiv%20class%3D%22routePages%20ng-scope%22%20ng-view%3D%22%22%3EcopeProvider%20%3C - %20 $范围%20%3C-%20gservice –

+0

首先包含gservice。 –

回答

3

试试这个在的index.html

<script src="js/gservice.js"></script> 
<script src="js/planCtrl.js"></script> 
<script src="js/app.js"></script> 

这是因为planCtrl取决于gservicechaloApp取决于planCtrlgservice ,所以你需要先包含它们。

+0

谢谢,路易斯。我会去尝试一下。 – manutdfan

0

您是否尝试过包括您gservice.js文件第一,其他模块依赖于它:

<script src="js/gservice.js"></script> 
<script src="js/app.js"></script> 
<script src="js/planCtrl.js"></script> 

编辑
你的错误消息表明$scope提供商不能注入您的gservice

你只应该在你的服务注入$rootScope

angular.module('gservice', []) 
    .factory('gservice', ['$rootScope', '$http', function($rootScope, $http) 
+1

我做到了,但没有奏效。我正在创建一个plunkr来显示其余的代码。 – manutdfan

0

我建议您将gservice工厂的名称更改为与您工厂模块的名称不同。同名可能会混淆事物。它看起来像是在将gservice模块注入您的​​控制器模块,当它被注入到app型号中时。

请尝试以下变化:

plan.js

var planCtrl = angular.module('planCtrl', []); 

planCtrl.controller('planController', ['$scope', '$rootScope', '$http', '$cookies', '$location', '$compile', '$uibModal', 'newGservice', function($scope, $rootScope, $http, $cookies, $location, $compile, $uibModal, newGservice){ 

gservice。js

angular.module('gservice', []) 
    .factory('newGservice', ['$scope', '$rootScope', '$http', function($scope, $rootScope, $http){ 
+0

谢谢,LJ。让我尝试一下。 – manutdfan