wake-up-neo.com

TypeError: Die Eigenschaft 'dann' von undefined kann nicht gelesen werden

loginService.islogged() 

Obige Funktion gibt eine Zeichenfolge wie "failed" zurück Wenn ich jedoch versuche, die Funktion auszuführen, wird eine Fehlermeldung ausgegeben

TypeError: Cannot read property 'then' of undefined

und der Cursor steht direkt hinter connected und vor .then.

Unten ist die volle Funktion:

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');
});

AKTUALISIEREN

Hier ist die Funktion 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;
    });
}

Ich bin sicher, dass der $checkSessionServer eine "fehlgeschlagene" Zeichenfolge ergibt. Nichts mehr.

75
Ezeewei

Sie müssen Ihr Versprechen an die aufrufende Funktion zurückgeben.

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
}
106
TheSharpieOne

TypeError: Die Eigenschaft "dann" von undefined kann nicht gelesen werden, wenn ein Django-Service mit AngularJS aufgerufen wird. 

Wenn Sie einen Python-Dienst aufrufen, sieht der Code wie folgt aus: 

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 
}

Wir verwenden MongoDB als Datenbank (ich weiß, es ist egal. Aber wenn jemand mit MongoDB + Python (Django) + AngularJS sucht, sollte das Ergebnis kommen. 

0
Haris Np