loginService.islogged()
上記の関数は "failed"のような文字列を返します。しかし、私はそれを実行しようとすると、それはのエラーが返されます
TypeError: Cannot read property 'then' of undefined
また、カーソルはconnected
の直後と.then
の直前にあることを示しています。
下記はフル機能です。
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');
});
更新
これが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;
});
}
$checkSessionServer
が "失敗した"文字列になることは間違いありません。これ以上何もない。
約束を呼び出し元の関数に返す必要があります。
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
}
TypeError:AngularJSを使ってDjangoサービスを呼び出すときにundefinedのプロパティ「then」を読み込めません。
Pythonサービスを呼び出している場合、コードは以下のようになります。
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
}
私たちはデータベースとしてMongoDBを使用しています(私はそれが問題ではないことを知っています。だれかがMongoDB + Python(Django)+ AngularJSで検索しているならば結果は来るはずです)。