我有以下三个angularjs脚本:
/config.js
/authentication/LoginCtrl.js
/authentication/loginFactoyr.js
App ristoreApp
在config.js中定义。
// config.js
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”调用应用程序:
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”
Argument 'LoginCtrl' is not a function, got undefined
为什么说我的控制器不是一个功能?我做错了什么?
答案 0 :(得分:1)
试试这个。删除LoginCtrl
上的引号。
controller: LoginCtrl
然后,将控制器定义为:
var LoginCtrl = app.controller("LoginCtrl", ["$scope", function($scope) { /* etc... */}]);