未知提供商AngularJs在添加“时”;.运行”;

Unknow provider AngularJs when adding in ".run"

本文关键字:运行 添加 提供商 AngularJs 未知      更新时间:2023-09-26

我正在启动AngularJS。当我尝试将我的模块"Principal"answers"Authentication"添加到.run()时,我在控制台日志中收到了这条消息。如果我删除"主体"answers"身份验证"。。。我不会犯错。

https://docs.angularjs.org/error/$injector/unp?p0=$scopeProvider%20%3C-%20$scope%20%3C%-%20主体%20%3C-%20授权:unp:未知提供商

var authentication = angular.module('Authentication',[]);
angular.module('simpleApp',['ui.router','ui.bootstrap','Authentication'])
    .factory('Principal',['$q','$scope',
        function($q,$scope){
        }
    ]).factory('Authorization',['$rootScope','$state','Principal',
        function($rootScope, $state, Principal){
        }
    ]).controller('SigninController',['$scope','$state','Principal',
        function($scope,$state,Principal){
        }
    ]).controller('HomeController', ['$scope','$state','Principal',
        function($scope,$state,Principal){
        }
    ]).config(['$stateProvider','$urlRouterProvider',
        function($stateProvider, $urlRouterProvider){
        }
    ]).run(['$rootScope','$state','$stateParams','Principal','Authorization',
        function($rootScope,$state,$stateParams,Principal){
        }
    ]);

我的html:

    <!DOCTYPE html>
 <html ng-app="simpleApp" id="ng-app">
     <head>
    <link rel="stylesheet" href="/annonce/public/inc/bootstrap/css/bootstrap-theme.css" >
    <link rel="stylesheet" href="/annonce/public/inc/bootstrap/css/bootstrap-min.css" >
    <link rel="stylesheet" href="/annonce/public/inc/bootstrap/css/bootstrap.css" >
    <link rel="stylesheet" href="/annonce/public/inc/bootstrap/css/styles.css" >
    <script type="text/javascript" src="/annonce/public/inc/js/jquery-1.11.3.js" ></script>
    <script type="text/javascript" src="/annonce/public/inc/bootstrap/js/bootstrap.min.js" ></script>
    <script type="text/javascript" src="/annonce/public/app/js/angular.min.js" ></script>
    <script type="text/javascript" src="/annonce/public/app/js/angular-route.min.js" ></script>
    <script type="text/javascript" src="/annonce/public/app/js/angular-ui-bootstrap.min.js" ></script>
    <script type="text/javascript" src="/annonce/public/app/simple/app.js"></script>
    <script type="text/javascript" src="/annonce/public/app/modules/authentication/services/AuthenticationService.js" ></script>
</head>
<body>
<nav class="navbar navbar-inverse navbar-fixed-top">
    <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">Mik3fly : Admin</a>
        </div>
        <div  id="navbar" class="collapse navbar-collapse">
          <ul class="nav navbar-nav">
            <li><a href="#">Index</a></li>
            <li><a href="#">CGV</a></li>
            <li><a href="#">Contact</a></li>
          </ul>
        </div><!--/.nav-collapse -->
    </div>
</nav>
<nav class="navbar navbar-lower affix" role="navigation">
    <div class="container paddingLeftRight0">
        <div  class="nav sousmenu">
            <ul class="nav navbar-nav">
              <li><a ui-sref="home">Connexion</a></li>
              <li><a ui-sref="signin">Autre</a></li>
            </ul>
        </div>
    </div>
</nav>            
    <div class="container" style="margin-top:50px;" ui-view="content" >  
    </div>
</body>

只有实例和常量才能注入到run(...)块中。查看模块上的AngularJS文档。

配置块-在提供程序注册和配置阶段执行只有提供程序和常量才能注入到配置块中这是为了防止在服务完全配置之前意外实例化服务。

运行块-在创建注入器后执行,用于启动应用程序只有实例和常量才能注入到运行块中。这是为了防止在应用程序运行时进行进一步的系统配置。

尝试将其更改为config,看看会发生什么。如果这不起作用,您可能需要将$provide注入config块,或将$injector$注入run块,并使用它们来获取依赖项。

不能将$scope注入Principal工厂。当通过$controller创建控制器时,它通过本地注入。

在您的工厂中删除$scope作为依赖项,或者像在其他工厂中那样使用$rootScope。