【问题标题】:AngularJS $injector: unknown providerAngularJS $injector:未知的提供者
【发布时间】:2014-07-10 18:14:28
【问题描述】:

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

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 无法解析 需要的依赖。要解决此问题,请确保定义了依赖项 并且拼写正确

嗯,我确定拼写正确,应该定义它。我已经尝试在 loginServices.js 中放入 getter 以获取 tradePlace 模块,并尝试将 getter 与 tradePlaceCntrls 模块一起使用,但仍然出现错误。

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

【问题讨论】:

  • 我猜这是因为您试图将'' 服务注入您的loginService。我想应该是app.factory('loginService', [function(){
  • 尝试在给出错误的行上放置一个断点,从那里你应该能够读取错误对象数据中发生的事情。通常,当我使用未在应用程序中添加的模块时,我会收到此错误。
  • 感谢它的工作,也感谢您的提示!

标签: javascript angularjs


【解决方案1】:

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

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

    };
});

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

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

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

    };
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 1970-01-01
    • 2018-06-14
    相关资源
    最近更新 更多