错误:[ng:areq]参数' AuthCtrl'不是一个功能,未定义

时间:2015-08-11 06:48:56

标签: javascript jquery angularjs

此问题已发布几次,但我似乎无法在我的代码中找到错误。有人可以在我的代码中帮助发现问题吗?

以下是我的app.js文件



'use strict';

/**
 *jslint node:true
 * @ngdoc overview
 * @name impApp
 * @description
 * # impApp
 *
 * Main module of the application.
 */
/*global Firebase, angular*/

angular
    .module('impApp', [
        'ngMessages',
        'ngResource',
        'ngRoute',
        'ngSanitize',
        'ngTouch',
        'firebase'
    ])
  .config(function ($routeProvider) {
    $routeProvider
      .when('/main', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl',
        controllerAs: 'main'
      })
      .when('/', {
        templateUrl: 'views/login.html',
        controller: 'AuthCtrl',
        controllerAs: 'auth'
      })
      .when('/about', {
        templateUrl: 'views/about.html',
        controller: 'AboutCtrl',
        controllerAs: 'about'
      })
      .otherwise({
        redirectTo: '/'
      });
  });

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
&#13;
&#13;
&#13;

其次,这是我的控制器内容&#34; auth.js&#34;:

&#13;
&#13;
'use strict';

/*global Firebase, angular, console*/

angular.module('impApp')
    // Re-usable factory that generates the $firebaseAuth instance
    .factory("Auth", function ($firebaseAuth) {
        var ref = new Firebase("https://impl.firebaseio.com");
        return $firebaseAuth(ref);
    })
    .controller('AuthCtrl', function ($scope, $http, Auth) {
    // Listens for changes in authentication state
        Auth.$onAuth(function (authData) {
            $scope.authData = authData;
        });

        // Logs in a user with email & password
        $scope.login = function () {
            Auth.authWithPassword({
                email    : $scope.email,
                password : $scope.password
            }, function (error, authData) {
                if (error) {
                    console.log("Login Failed!", error);
                } else {
                    console.log("Authenticated successfully with payload:", authData);
                }
            });
        };
    
// Logs out the logged-in user
        $scope.logout = function () {
            Auth.$unauth();
        };
    });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
&#13;
&#13;
&#13;

最后,我概述了&#34; login.html&#34;内容:

&#13;
&#13;
<div>
    <form class="form-signin">       
      <h2 class="form-signin-heading">Please Sign In</h2>
      <input type="text" class="form-control" name="username" ng-model = "username" placeholder="Email Address" required="" autofocus="" />
      <input type="password" class="form-control" name="password" ng-model = "password" placeholder="Password" required=""/>
        <p></p>
      <button class="btn btn-lg btn-primary btn-block" type="submit" ng-click="login()">Login</button>   
    </form>
  </div>
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

谢谢Pierre-Alexandre。将链接添加到index.html中的js文件解决了这个问题。