关于模块:AngularJS错误:ng:areq Bad Argument

AngularJS Error: ng:areq Bad Argument

我有以下三个angularjs脚本:

1
2
3
/config.js
/authentication/LoginCtrl.js
/authentication/loginFactoyr.js

App ristoreApp在config.js中定义。

//config.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
angular.module('ristoreApp', ['ngRoute'])

.config(function ($routeProvider, $locationProvider, $httpProvider) {
//  $httpProvider.responseInterceptors.push('httpInterceptor');

    $routeProvider
        .when('/login', {
            templateUrl: 'authentication/login.html',
            controller: 'LoginCtrl'
        })
        .when('/home', {
            templateUrl: 'home.html',
        })
        .otherwise({
            redirectTo: '/login'
        });

    $locationProvider.html5Mode(true);
});

我的控制器通过"angular.module"调用应用程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
angular.module('ristoreApp', [])
.controller('LoginCtrl', ['$scope', '$location', 'loginFactory', function($scope, $location, loginFactory){
    $scope.authenticate = function() {
        loginFactory.login($scope.username, $scope.password)
        .then(function(response) {
            console.log(response);
            $location.path('/home');
        }, function errorCallBack(response) {
            console.log(response);
            $location.path('login');
        });
    }
}]);

得到错误"错误:ng:areq Bad Argument"

1
Argument 'LoginCtrl' is not a function, got undefined

为什么说我的控制器不是一个功能? 我做错了什么?


试试这个。 删除LoginCtrl上的引号。

1
controller: LoginCtrl

然后,将控制器定义为:

1
var LoginCtrl = app.controller("LoginCtrl", ["$scope", function($scope) { /* etc... */}]);