loginService.islogged()
La fonction ci-dessus renvoie une chaîne comme "échoué". Cependant, lorsque j'essaye d'exécuter puis de fonctionner dessus, cela retournera une erreur de
TypeError: Cannot read property 'then' of undefined
et le curseur est indiqué juste après connected
et avant .then
.
Voici la fonction complète:
var connected=loginService.islogged();
alert(connected);
connected.then(function(msg){
alert("connected value is "+connected);
alert("msg.data value is "+msg.data);
if(!msg.data.account_session || loginService.islogged()=="failed")
$location.path('/login');
});
METTRE À JOUR
Voici la islogged()
fonction
islogged:function(){
var cUid=sessionService.get('uid');
alert("in loginServce, cuid is "+cUid);
var $checkSessionServer=$http.post('data/check_session.php?cUid='+cUid);
$checkSessionServer.then(function(){
alert("session check returned!");
console.log("checkSessionServer is "+$checkSessionServer);
return $checkSessionServer;
});
}
Je suis certain que le $checkSessionServer
résultera en une chaîne "ratée". Rien de plus.
javascript
angularjs
promise
Ezeewei
la source
la source
promise
ici.msg
- qui devrait retourner une promesse.undefined
, alorsislogged()
n'est pas réellementreturn
une valeur. La définition deislogged()
serait probablement la source de vos problèmes.Réponses:
Vous devez renvoyer votre promesse à la fonction d'appel.
la source
return $http.post
. Dès que j'ai ajouté le préfixereturn
à$http
, il a commencé à fonctionner correctement.return
aussi.TypeError: Impossible de lire la propriété 'then' de undefined lors de l'appel d'un service Django à l'aide d'AngularJS.
Si vous appelez un service Python, le code ressemblera à ci-dessous:
Nous utilisons MongoDB comme base de données (je sais que cela n'a pas d'importance. Mais si quelqu'un recherche avec MongoDB + Python (Django) + AngularJS, le résultat devrait arriver.
la source