loginService.islogged()
La función anterior devuelve una cadena como "fallida". Sin embargo, cuando intento ejecutar y luego funcionar en él, devolverá el error de
TypeError: Cannot read property 'then' of undefined
y el cursor se indica justo después connected
y antes .then
.
A continuación se muestra la función completa:
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');
});
ACTUALIZAR
Aquí está la islogged()
función
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;
});
}
Estoy seguro de que el $checkSessionServer
resultado será una cadena "fallida". Nada mas.
javascript
angularjs
promise
Ezeewei
fuente
fuente
promise
aquí.msg
- eso debería devolver una promesa.undefined
, enislogged()
realidad no esreturn
un valor. La definición deislogged()
probablemente sería la fuente de sus problemas.Respuestas:
Debe devolver su promesa a la función de llamada.
fuente
return $http.post
. Tan pronto como he añadido el prefijoreturn
a$http
, que comenzó a trabajar correctamente.return
también.TypeError: no se puede leer la propiedad 'luego' de undefined al llamar a un servicio Django usando AngularJS.
Si está llamando a un servicio de Python, el código se verá a continuación:
Estamos usando MongoDB como base de datos (sé que no importa. Pero si alguien está buscando con MongoDB + Python (Django) + AngularJS, el resultado debería aparecer.
fuente