AngularJS $ injector:未知提供者

时间:2014-07-10 10:02:22

标签: javascript angularjs

我有一个问题我有这段代码:

的index.html:

<!doctype html>
<html lang="nl" ng-app="tradePlace">
    <head>
        <meta charset="utf-8">
        <link href="./helpers/bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css">
        <link href="./helpers/bootstrap/js/bootstrap.min.js" rel="stylesheet" type="text/css">
        <link href="./helpers/style.css" rel="stylesheet" type="text/css">
        <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.18/angular.min.js"></script>
        <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.18/angular-route.min.js"></script>
        <script type="text/javascript" src="./includes/routes/routes.js"></script>
        <script type="text/javascript" src="./includes/services/loginService.js"></script>
        <script type="text/javascript" src="./includes/controllers/indexCntrl.js"></script>
    </head>
    <body ng-view></body>
</html>

Routes.js:

var app = angular.module('tradePlace', ['ngRoute', 'tradeCntrls']);
app.config(['$routeProvider', '$locationProvider', function($route, $location) {
    $route.
    when('/', {
        redirectTo: '/index'
    }).
    when('/index', {
        templateUrl: './includes/templates/index.html',
        controller: 'indexCntrl'
    }).
    when('/register', {
        templateUrl: './includes/templates/register.php',
        controller: 'indexCntrl'
    }).
    otherwise({
        redirectTo: '/index'
    });

    $location.html5Mode(true);
}])

indexCtrnl.js:

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

app.controller('indexCntrl', ['$scope' , 'loginService', function($scope, login){
    $scope.login = function() {

    }
}])

loginService.js

app.factory('loginService', ['', function(){
    return function login(){

    };
}])

所以,我收到了这个错误:

  

错误:$ injector:unpr未知提供商

AngularJS文档上的错误页面说:

  

此错误是因为$ injector无法解析a   必要的依赖。要解决此问题,请确保已定义依赖项   拼写正确

嗯,我确定拼写正确,应该定义。我已经尝试在loginServices.js中放置一个getter来获取tradePlace模块,并尝试使用带有tradePlaceCntrls模块的getter,但我仍然得到错误。

我不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

不确定是不是这样,但您是否尝试过像这样定义工厂?

app.factory('loginService', function(){
    return function login(){

    };
});

您不需要阵列,因为您的登录服务没有任何依赖项。那''可能会导致您的问题。尝试删除阵列,因为在这种情况下不需要。

此外,您可以将登录服务定义为服务:

app.service('loginService', function(){
    return function login(){

    };
});