Bovenstaande functie retourneert een tekenreeks zoals “mislukt”.
Wanneer ik echter probeer om het vervolgens uit te voeren, zal het de fout van
. retourneren
TypeError: Cannot read property 'then' of undefined
en de cursor wordt aangegeven direct na connected
en voor .then
.
Hieronder staat de volledige functie:
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');
});
UPDATE
Hier is de functie islogged()
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;
});
}
Ik ben er zeker van dat de $checkSessionServer
zal resulteren in een “mislukte” string. Niets meer.
Antwoord 1, autoriteit 100%
U moet uw belofte aan de belfunctie teruggeven.
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; // <-- return your promise to the calling function
}
Antwoord 2, Autoriteit 2%
TypeError: Kan onroerend goed niet lezen ‘dan niet gedefinieerd bij het bellen van een Django-service met behulp van Angularjs.
Als u een Python-service belt, ziet de code eruit als volgt:
this.updateTalentSupplier=function(supplierObj){
var promise = $http({
method: 'POST',
url: bbConfig.BWS+'updateTalentSupplier/',
data:supplierObj,
withCredentials: false,
contentType:'application/json',
dataType:'json'
});
return promise; //Promise is returned
}
We gebruiken MongoDB als de database (ik weet dat het er niet toe doet, maar als iemand op zoek is naar MongoDB + Python (Django) + Angularjs het resultaat zou moeten komen.