2016-02-25 62 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