Angular js 1.4.8注入模块错误 [英] Angular js 1.4.8 Injection module error

查看:46
本文介绍了Angular js 1.4.8注入模块错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在角度1.4.8中实现oauth服务.我在这样的控制台中收到错误:

未捕获的错误:

 http://errors.angularjs.org/1.4.8/$injector/modulerr?p0=angularoauthexample…udflare.com%2Fajax%2Flibs%2Fangular.js%2F1.4.8%2Fangular.min.js%3A19%3A463)(匿名函数)@ angular.js:38(匿名函数)@ angular.js:4458n@angular.js:340g@angular.js:4419eb@angular.js:4344c@angular.js:1676yc @angular.js:1697Zd @ angular.js:1591(匿名函数)@ angular.js:29013j @ jquery.js:3148k.fireWith @ jquery.js:3260m.extend.ready @ jquery.js:3472J @ jquery.js:3503 

HTML:

 <!DOCTYPE html>< html lang ="zh-CN">< head>< meta charset ="utf-8">< meta http-equiv ="X-UA-Compatible" content ="IE = edge">< meta name ="viewport" content ="width = device-width,initial-scale = 1"><!-以上3个元标记*必须*排在首位;其他任何头部内容都必须在这些标签之后*<元名称=说明" content ="><元名称=作者" content =">< title>用于Bootstrap的入门模板</title>< ;!-Bootstrap核心CSS->< link href ="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel ="stylesheet"><!-font-awesome->< link rel ="stylesheet" href ="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"><!-Bootstrap social->< link rel ="stylesheet" href ="css/bootstrap-social.css"><!-此模板的自定义样式->< link href ="css/style.css" rel ="stylesheet"></head>< body ng-app ="angularoauthexampleApp">< div id ="wrap">< nav class ="navbar navbar-inverse navbar-fixed-top">< div class ="container">< div class ="navbar-header">< button type ="button" class ="navbar-toggle折叠" data-toggle ="collapse" data-target =#navbar" aria-expanded ="false" aria-controls ="navbar">< span class ="sr-only">切换导航</span>< span class ="icon-bar"></span>< span class ="icon-bar"></span>< span class ="icon-bar"></span></button>< a class ="navbar-brand em-text" href =#">< i class ="fa fa-user-plus fa-1x" style ="color:whitesmoke"></i></a></div>< div id ="navbar" class ="collapse navbar-collapse">< ul class ="nav navbar-nav">< li class ="active">< a href =#"> Home</a></li>< li>< a href =#about">关于</a></li>< li>< a href =#contact"> Contact</a></li></ul>< ul class ="nav navbar-nav navbar-right">< li>< p class ="navbar-text">已经有一个帐户了?</p></li>< li class ="dropdown">< a href =#" class ="dropdown-toggle" data-toggle ="dropdown">< b>登录</b>< span class ="caret"></span></a>< ul id ="login-dp" class ="dropdown-menu">< li>< div class ="row">< div class ="col-md-12">通过登录< div class ="social-buttons">< a href =#" class ="btn btn-fb">< i class ="fa fa-facebook"></i>Facebook</a><!-< button class ="btn btn-primary" ng-click ="login()">< i class ="fa fa-google" ng-click ="login()"><;/i>Google</button>->< a href =#" class ="btn btn-google">< i class ="fa fa-google" ng-click ="login()"></i>Google</a></div>或者< form class ="form" role ="form" method ="post" action ="login" accept-charset ="UTF-8" id ="login-nav">< div class ="form-group">< label class ="sr-only" for ="exampleInputEmail2">电子邮件地址</label><输入type ="email" class ="form-control" id ="exampleInputEmail2"占位符=电子邮件地址"必填></div>< div class ="form-group">< label class ="sr-only" for ="exampleInputPassword2">密码</label><输入类型=密码" class ="form-control" id ="exampleInputPassword2"占位符=密码">< div class ="help-block text-right">< a href =">忘记密码?</a></div></div>< div class ="form-group">< button type ="submit" class ="btn btn-primary btn-block">登录</button></div>< div class ="checkbox"><标签>< input type ="checkbox">保持登录状态</label></div></form></div>< div class ="bottom text-center">新来的 ?< a href =#">< b>加入我们</b></a></div></div></li></ul></li></ul></div><!-/.nav-collapse-></div></nav>< ;!-Bootstrap核心JavaScript + Angular Js==================================================-><!-放置在文档的末尾,因此页面加载速度更快->< script src ="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>< script src ="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.min.js"</script>< script src ="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script>< script src ="scripts/app.js"></script>< script src ="scripts/controllers/main.js"></script>< script src ="scripts/controllers/about.js"></script></body></html> 

角度代码:

App.js:

 'use strict';角度的.module('angularoauthexampleApp',['ngAnimate','ngCookies','ngResource','ngRoute','ngSanitize','ngTouch']).config(function($ routeProvider){$ routeProvider.什么时候('/', {templateUrl:"views/main.html",控制器:"MainCtrl"}).when('/afterlogin',{templateUrl:"views/afterlogin.html",控制器:"AboutCtrl"}).when('/access_token =:accessToken',{模板: '',控制器:功能($ location,$ rootScope){var hash = $ location.path().substr(1);var splitted = hash.split('&');var params = {};for(var i = 0; i< splitted.length; i ++){var param = splitted [i] .split('=');var key = param [0];var value = param [1];params [key] = value;$ rootScope.accesstoken =参数;}$ location.path("/afterlogin");}}).否则({redirectTo:'/'});}); 

Main.js

  angular.module('angularoauthexampleApp').controller('MainCtrl',function($ scope){$ scope.awesomeThings = ["HTML5样板",'AngularJS','业力'];$ scope.login = function(){var client_id ="343625411797-hcm0impil8l1mughb8ma2jj966um05bp.apps.googleusercontent.com";var scope ="email";var redirect_uri ="http://localhost:9046/RTH_Sample4/app/";var response_type ="token";var url ="https://accounts.google.com/o/oauth2/auth?scope=" + scope +& client_id =" + client_id +& redirect_uri =" + redirect_uri +& response_type =" + response_type;window.location.replace(url);};}); 

About.js

  angular.module('angularoauthexampleApp').controller('AboutCtrl',function($ scope,$ rootScope){$ scope.awesomeThings = ["HTML5样板",'AngularJS','业力'];$ scope.root = $ rootScope;}); 

我尝试在线搜索修复程序,但到目前为止没有任何效果.

我该如何解决?

解决方案

我认为您在定义控制器时出错.

代替此:

  angular.module('angularoauthexampleApp').controller('MainCtrl',function($ scope){//控制器内容}); 

尝试以下方法:

  angular.module('angularoauthexampleApp').controller('MainCtrl',['$ scope',function($ scope){//控制器内容}]); 

请参阅文档: https://docs.angularjs.org/guide/controller

I am trying to implement oauth service in angular 1.4.8. I am getting an error in console like this:

Uncaught Error:

http://errors.angularjs.org/1.4.8/$injector/modulerr?p0=angularoauthexample…udflare.com%2Fajax%2Flibs%2Fangular.js%2F1.4.8%2Fangular.min.js%3A19%3A463)(anonymous function) @ angular.js:38(anonymous function) @ angular.js:4458n @ angular.js:340g @ angular.js:4419eb @ angular.js:4344c @ angular.js:1676yc @ angular.js:1697Zd @ angular.js:1591(anonymous function) @ angular.js:29013j @ jquery.js:3148k.fireWith @ jquery.js:3260m.extend.ready @ jquery.js:3472J @ jquery.js:3503

HTML:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
        <meta name="description" content="">
        <meta name="author" content="">        

        <title>Starter Template for Bootstrap</title>

        <!-- Bootstrap core CSS -->
        <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">

        <!--font-awesome-->
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

        <!--Bootstrap social-->
        <link rel="stylesheet" href="css/bootstrap-social.css">

        <!-- Custom styles for this template -->
        <link href="css/style.css" rel="stylesheet">
    </head>


    <body ng-app="angularoauthexampleApp">
        <div id="wrap">
            <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 em-text" href="#"><i class="fa fa-user-plus fa-1x" style="color:whitesmoke"></i></a>
                    </div>
                    <div id="navbar" class="collapse navbar-collapse">
                        <ul class="nav navbar-nav">
                            <li class="active"><a href="#">Home</a></li>
                            <li><a href="#about">About</a></li>
                            <li><a href="#contact">Contact</a></li>
                        </ul>

                        <ul class="nav navbar-nav navbar-right">
                            <li><p class="navbar-text">Already have an account?</p></li>
                            <li class="dropdown">
                                <a href="#" class="dropdown-toggle" data-toggle="dropdown"><b>Login</b> <span class="caret"></span></a>
                                <ul id="login-dp" class="dropdown-menu">
                                    <li>
                                        <div class="row">
                                            <div class="col-md-12">
                                                Login via
                                                <div class="social-buttons">
                                                    <a href="#" class="btn btn-fb"><i class="fa fa-facebook"></i> Facebook</a>
                                                    <!--<button class="btn btn-primary" ng-click="login()"><i class="fa fa-google" ng-click="login()"></i> Google</button>-->
                                                    <a href="#" class="btn btn-google"><i class="fa fa-google" ng-click="login()"></i> Google</a>
                                                </div>
                                                or
                                                <form class="form" role="form" method="post" action="login" accept-charset="UTF-8" id="login-nav">
                                                    <div class="form-group">
                                                        <label class="sr-only" for="exampleInputEmail2">Email address</label>
                                                        <input type="email" class="form-control" id="exampleInputEmail2" placeholder="Email address" required>
                                                    </div>
                                                    <div class="form-group">
                                                        <label class="sr-only" for="exampleInputPassword2">Password</label>
                                                        <input type="password" class="form-control" id="exampleInputPassword2" placeholder="Password" required>
                                                        <div class="help-block text-right"><a href="">Forget the password ?</a></div>
                                                    </div>
                                                    <div class="form-group">
                                                        <button type="submit" class="btn btn-primary btn-block">Sign in</button>
                                                    </div>
                                                    <div class="checkbox">
                                                        <label>
                                                            <input type="checkbox"> keep me logged-in
                                                        </label>
                                                    </div>
                                                </form>
                                            </div>
                                            <div class="bottom text-center">
                                                New here ? <a href="#"><b>Join Us</b></a>
                                            </div>
                                        </div>
                                    </li>
                                </ul>
                            </li>
                        </ul>
                    </div><!--/.nav-collapse -->
                </div>
            </nav>


        <!-- Bootstrap core JavaScript + Angular Js
        ================================================== -->
        <!-- Placed at the end of the document so the pages load faster -->
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script>

        <script src="scripts/app.js"></script>
        <script src="scripts/controllers/main.js"></script>
        <script src="scripts/controllers/about.js"></script>
    </body>
</html>

Angular code:

App.js:

'use strict';

    angular
      .module('angularoauthexampleApp', [
        'ngAnimate',
        'ngCookies',
        'ngResource',
        'ngRoute',
        'ngSanitize',
        'ngTouch'
      ])
      .config(function ($routeProvider) {
        $routeProvider
          .when('/', {
            templateUrl: 'views/main.html',
            controller: 'MainCtrl'
          })
          .when('/afterlogin', {
            templateUrl: 'views/afterlogin.html',
            controller: 'AboutCtrl'
          })
          .when('/access_token=:accessToken', {
            template: '',
            controller: function ($location,$rootScope) {
              var hash = $location.path().substr(1);

              var splitted = hash.split('&');
              var params = {};

              for (var i = 0; i < splitted.length; i++) {
                var param  = splitted[i].split('=');
                var key    = param[0];
                var value  = param[1];
                params[key] = value;
                $rootScope.accesstoken=params;
              }
              $location.path("/afterlogin");
            }
          })
          .otherwise({
            redirectTo: '/'
          });
      });

Main.js

angular.module('angularoauthexampleApp')
  .controller('MainCtrl', function ($scope) {
    $scope.awesomeThings = [
      'HTML5 Boilerplate',
      'AngularJS',
      'Karma'
    ];
    $scope.login=function() {
        var client_id="343625411797-hcm0impil8l1mughb8ma2jj966um05bp.apps.googleusercontent.com";
        var scope="email";
        var redirect_uri="http://localhost:9046/RTH_Sample4/app/";
        var response_type="token";
        var url="https://accounts.google.com/o/oauth2/auth?scope="+scope+"&client_id="+client_id+"&redirect_uri="+redirect_uri+
        "&response_type="+response_type;
        window.location.replace(url);
    };
  });

About.js

angular.module('angularoauthexampleApp')
  .controller('AboutCtrl', function ($scope,$rootScope) {
    $scope.awesomeThings = [
      'HTML5 Boilerplate',
      'AngularJS',
      'Karma'
    ];
    $scope.root=$rootScope;
  });

I tried searching online for a fix but nothing worked so far.

How do I fix this?

解决方案

I think you have an error defining your controllers.

Instead of this:

angular.module('angularoauthexampleApp')
    .controller('MainCtrl', function ($scope) {

    // controller content

});

try this instead:

angular.module('angularoauthexampleApp')
    .controller('MainCtrl', ['$scope', function ($scope) {

    // controller content

}]);

See documentation: https://docs.angularjs.org/guide/controller

这篇关于Angular js 1.4.8注入模块错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆