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