所以我正在尝试从服务器检索令牌,但在尝试调用服务中的方法时遇到错误。
LoginController.js:
(function(){
angular.module('app')
.controller('LoginController', [
'$http', 'authService',
LoginController
]);
function LoginController(authService ) {
var vm = this;
vm.user = {};
vm.login = function () {
console.log("logging in");
authService.getToken("admin", "admin")
.then(function (data) {
console.log(data);
}, function (error) {
//TODO: error handling
})
};
}
})();
authService.js:
(function(){
'use strict';
angular
.module('app')
.factory('authService', ['$http', '$rootScope', 'REST_END_POINT',
authService
]);
function authService($http, $rootScope, REST_END_POINT){
return {
getToken: function(username, password) {
var config = {
headers: {
'Accept': 'application/json'
}
};
var data = {
username: login,
password: password
};
return $http.post(REST_END_POINT, +"/authenticate", data, config);
}
};
}
})();
我一直收到这个错误:
TypeError:authService.getToken不是函数 在LoginController.vm.login
答案 0 :(得分:0)
您忘了在控制器功能中添加$ http。
angular.module('app')
.controller('LoginController', [
'$http', 'authService',
LoginController
]);
function LoginController(_$http_needs_to_be_here, authService ) {
...
答案 1 :(得分:0)
从此行中删除$http
,因为您已在服务中注入<{1}}
angular.module('app')
.controller('LoginController', [
'authService',
LoginController
]);
答案 2 :(得分:0)
在LoginController函数中你没有错误的params。你有请求angular注入$ http和authService。但是你在功能上只有一个参数。有关详细信息,请阅读Angular DI
重写代码:
(function(){
angular.module('app')
.controller('LoginController', [
'$http', 'authService',
LoginController
]);
function LoginController($http, authService ) {
var vm = this;
vm.user = {};
vm.login = function () {
console.log("logging in");
authService.getToken("admin", "admin")
.then(function (data) {
console.log(data);
}, function (error) {
//TODO: error handling
})
};
}
})();