Ich versuche, die Login-Funktion meiner AuthService Factory von meinem AuthLoginController Controller zu verwenden. Das Problem ist, dass, wenn die User.login-Funktion mit einer falschen E-Mail und einem falschen Kennwort ausgeführt wird, die console.log() false zurückgibt, was ich will. Aber wenn ich die richtige E-Mail und Passwort verwenden, ich bin einAngularJs Versprechen gibt undefined zurück
Error: response is not defined
bekomme ich verstehe es nicht, weil alles mit Funktion einwandfrei funktioniert (Fehler) {}, aber nicht mit der Funktion (Erfolg) {}, obwohl sie sind beide das Ergebnis eines asynchronen Aufrufs.
angular
.module('app')
.factory('AuthService', ['Member', '$q', '$rootScope', '$state', function(
User, $q, $rootScope, $state) {
function login(email, password) {
return User
.login({email: email, password: password})
.$promise
.then(function(success) {
$rootScope.currentUser = {
id: response.user.id,
tokenId: response.id,
email: email,
firstname: response.user.firstname,
lastname: response.user.lastname
};
return true;
},
function(error) {
return false;
}
);
} return {
login: login
};
}]);
Hier ist meine AuthLoginController-Controller.
angular
.module('app')
.controller('AuthLoginController', ['$scope', 'AuthService', '$state',
function($scope, AuthService, $state) {
$scope.user = {
email: '[email protected]',
password: 'test1'
};
$scope.login = function() {
AuthService.login($scope.user.email, $scope.user.password)
.then(function(response) {
console.log(response);
return;
}
//go to the default state after login
$state.go('test');
});
};
}]);
Wie kann ich wahr von meinem AuthLoginController abrufen? Dank (Sorry für mein schlechtes Englisch)
Müssen Sie nicht ein Versprechen abgeben, 'then' zu verwenden? – jdmdevdotnet
Nun, ich weiß es nicht. Ich kämpfe mit AngularJs. Ich habe gelesen, dass das Aufrufen der then-Methode eines Versprechens ein neues abgeleitetes Versprechen zurückgibt, aber ich weiß nicht, welche Methode ich verwenden soll. – ThomasF62