2015-03-03 113 views
-1

我得到这个传说中的错误,我想不出原因:AngularJS:未知的提供程序错误

Uncaught Error: [$injector:modulerr] Failed to instantiate module myApp due to: 
Error: [$injector:unpr] Unknown provider: AbastecsService 

app.js

var myApp = angular.module("myApp", ["ngRoute", "ngResource", 
    "myApp.services", "myApp.controllers"]); 

var controllers = angular.module("myApp.controllers", []); 
var services = angular.module("myApp.services", []); 

myApp.config(["$routeProvider", "$httpProvider", "AbastecsService", 
    function($routeProvider, $httpProvider, AbastecsService) { 

    $routeProvider 

    .when("/", { 
     templateUrl : "login.html", 
     controller : "LoginController" 
    }) 

    .when("/abastecimientos", { 
     templateUrl : "main.html", 
     controller : "AbastecsController", 
     resolve : { 
      abastecs : function(AbastecsService) { 
       return AbastecsService.getAbastecimientos(); 
      } 
     } 
    }); 

}]); 

abastecimientos_service.js

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

services.service("AbastecsService", ["$resource", function($resource) { 

    var ROOT_URL = "http://xxx.xxx.xxx.xxx"; 

    var Abastecimientos = 
     $resource(ROOT_URL + "/abastecimientos/2010101010101010"); 

    this.getAbastecimientos = function() { 
     var abastecs = Abastecimientos.get(function() { 
      return abastecs.data; 
     }); 
    }; 

}]); 

abastecimientos_controller.js

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

controllers.controller("AbastecsController", ["$scope", "abastecs", 
    function($scope, abastecs){ 

    $scope.abastecs = abastecs; 

}]); 

login_controller.js

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

controllers.controller("LoginController" , ["$scope", "$location", 
    function($scope, $location) { 

    $scope.login = function() { 
     $location.path("/abastecimientos"); 
    }; 

}]); 

的index.html

<!DOCTYPE html> 
<html> 
<head> 

    <link rel="shortcut icon" href="favicon32.ico" /> 
    <link href="css/bootstrap.min.css" rel="stylesheet" type="text/css"> 
    <link rel="stylesheet" type="text/css" href="/css/signin.css" media="screen" /> 

</head> 

<body ng-app="myApp" id="page-top" data-spy="scroll" data-target=".navbar-custom"> 

    <div ng-view></div> 

    <!-- JQuery --> 
    <script src="lib/jquery/jquery-1.11.2.min.js"></script> 

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

    <script src="js/app.js"></script> 
    <script src="js/controllers/login_controller.js"></script> 
    <script src="js/controllers/abastecimientos_controller.js"></script> 
    <script src="js/services/abastecimientos_service.js"></script> 

    <!-- Bootstrap --> 
    <script src="lib/bootstrap/js/bootstrap.min.js"></script> 

</body> 
</html> 

感谢。

+0

有你在HTML页面引用了你的'abastecimientos_service.js'? – iJade 2015-03-03 08:07:12

+0

对不起,我忘了发布index.html文件,但是,我做到了。 – 2015-03-03 08:11:04

+0

尝试更改'angular.module(“myApp.services”);'将'angular.module(“myApp.services”,[]);'还有'angular.module(“myApp.controllers”);'' angular.module(“myApp.controllers”,[]);' – iJade 2015-03-03 08:13:57

回答

0

解决!

问题是我在注入我的服务app.config,它不能。然后,它会这样:

myApp.config(["$routeProvider", "$httpProvider", 
    function($routeProvider, $httpProvider, AbastecsService) { 

... 

} 
相关问题