Angulaires - TypeError: XX n'est pas une fonction
Peut-être que je vais manquer une sorte de propriété, mais je vais suivre ce projet et j'obtiens cette erreur dans mon contrôleur.
TypeError: loginService.signin is not a function
C'est mon controller.js
angular.module('appcontrollers', []).controller('LoginController', ['$rootScope', '$scope', '$http', '$location', '$localStorage', 'loginService',
function ($rootScope, $scope, $http, loginService) {
$scope.signin = function() {
console.log("username: " + $scope.username);
console.log("pass: " + $scope.password);
var formData = {
username: $scope.username,
password: $scope.password
};
//ERROR IN THIS LINE
loginService.signin(formData, function(res) {
console.log("asdf");
if (res.type == false) {
console.log(res.data);
} else {
$localStorage.token = res.data.token;
console.log("Window location /");
}
}, function() {
$rootScope.error = "Error en el logueo del usuario";
});
//Setting Token:
$scope.token = $localStorage.token;
}
}])
C'est mon service.js
'use strict';
angular.module('app-services', [])
.factory('loginService', ['$http', '$localStorage', function ($http, $localStorage) {
console.log('services - loginService');
var baseUrl = "http://angular-restful-auth.herokuapp.com";
function changeUser(user) {
console.log('1');
angular.extend(currentUser, user);
}
function urlBase64Decode(str) {
console.log('2');
var output = str.replace('-', '+').replace('_', '/');
switch (output.length % 4) {
case 0:
break;
case 2:
output += '==';
break;
case 3:
output += '=';
break;
default:
throw 'Illegal base64url string!';
}
return window.atob(output);
}
function getUserFromToken() {
console.log('3');
var token = $localStorage.token;
var user = {};
if (typeof token !== 'undefined') {
var encoded = token.split('.')[1];
user = JSON.parse(urlBase64Decode(encoded));
}
return user;
}
//Set user token.
var currentUser = getUserFromToken();
return {
save: function(data, success, error) {
$http.post(baseUrl + '/signin', data).success(success).error(error)
},
signin: function(data, success, error) {
$http.post(baseUrl + '/authenticate', data).success(success).error(error)
},
me: function(success, error) {
$http.get(baseUrl + '/me').success(success).error(error)
},
logout: function(success) {
changeUser({});
delete $localStorage.token;
success();
}
};
}
]);
Mon application fonctionne jusqu'à ce que l'utilisateur presse le bouton soumettre appelé signin()
à partir d'un formulaire. Puis j'ai eu cette deux lignes dans ma console avec les données correctes
>> username: somename
>> pass: somepassword
Et après que l'erreur s'affiche. Quelqu'un peut m'aider pour transmettre cette signin()
fonction?
OriginalL'auteur RicardoGonzales | 2015-06-16
Vous devez vous connecter pour publier un commentaire.
Vous sont gâcher avec l'injection de Dépendance tableau, qui doit suivre l'ordre correct de dépendance lorsque vous l'utilisez dans une fonction.
Code
OriginalL'auteur Pankaj Parkar